2010-08-25 2 views
1

Несколько месяцев назад наши хранилища VisualSVN сервера были созданы, несколько репозитории существует под одним корнем, структура выглядит следующим образом:Визуальных SVN несколько хранилищ резервного

Repository расположен в C:\Repositories\root

root 
-branches 
-tags 
-trunk 
--repo1 
---folder1 
---folder2 
--repo2 
---folder1 
---folder2 

I удалось выполнить итерацию через repo1, папки repo2, используя команды svn list (svn list file:///c:/Repositories/root/trunk/repo1), теперь я хотел бы создать резервные копии repo1 и repo2.

Я мог бы сделать резервную копию на корневом уровне, тогда как размер файла резервной копии слишком велик, хотелось бы сделать резервную копию на уровне репозиториев.

Я пытался использовать в качестве svnadmin dump file:///c:/Repositories/root/trunk/repo1 > D:\repo1-backup.db

выдает ошибку, говоря «svnadmin: file:///c:/Repositories/root/trunk/repo1" является URL, когда он должен быть путь». Ошибка имеет смысл, что я использовал URL вместо путей файловой системы.

Я прошел через помощь и обнаружил, что могу использовать, еще не пробовал!

1) резервная копия всего корневой svnadmin свалка C: \ Хранилище \ корень> Repos-DUMPFILE 2) использовать svndumpfilter включить repo1 svndumpfilter включает repo1 < репо-DumpFile> repo1-DUMPFILE

Я беспокоюсь о step1, это приводит к огромному файлу на моем диске. Хотелось бы знать, есть ли другой способ резервного копирования моих репозиториев.

ответ

0

Насколько я знаю, нет способа использовать svndump для извлечения одного пути из репозитория.

Я думаю, вам действительно нужно сбросить все это, а затем использовать на нем svndumpfilter.

+0

беспокоится, чтобы попытаться это, чтобы сбросить все это, ест огромное пространство на моем диске. Кажется, нет другой альтернативы, я прав? – user430404

+0

@user нет, я не вижу. Возможно, вы должны разделить хранилище на несколько более мелких. –

0

У вас очень странная структура репозитория.
Обычно repo1 и repo2 будут отдельными репозиториями верхнего уровня с каждой ветвью, тегами и туловищем внутри них.

Но вы знаете, что если у вас есть структура fsfs как структура базы данных, вы можете делать инкрементный файл по резервному копированию файлов и только создавать резервные копии более новых файлов каждый раз.

+0

Да, его странный репозиторий, кажется, здесь используется Berkeley DB. любой другой подход? – user430404

+0

Если вы не можете преобразовать его в fsfs, вы можете, по крайней мере, использовать [svnadmin hotcopy] [1], а затем сделать обычную резервную копию файла этой копии. [1]: http://svnbook.red-bean.com/en/1.0/re33.html –

0

SVNAdmin может резервировать каждый репозиторий отдельно. Если у вас несколько репозиториев, вам приходится делать резервные копии отдельно. Вы можете написать скрипт (например, bat, vbs в windows), который автоматически создает резервные копии всех репозиториев.
для резервного копирования repo1 использовать следующую команду:

svnadmin.exe dump c:\Repositories\root\trunk\repo1 > D:\repo1-backup.bak 

для многократного использования хранилища ниже сценария:
dump_repos.bat

cd c:\Repositories\root\trunk\ 
dir /A:D /B> dirs.tmp 
FOR /F %%i IN (dirs.tmp) DO (
"svnadmin.exe" dump %%i > %%i.svn 
) 

 Смежные вопросы

  • Нет связанных вопросов^_^