Визуальное резервное копирование нескольких репозиториев SVN - PullRequest
1 голос
/ 25 августа 2010

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

Хранилище находится по адресу C:\Repositories\root

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

Я мог перебирать папки 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: \ Repositories \ root> repos-dumpfile 2) использовать svndumpfilter для включения repo1 svndumpfilter include repo1 repo1-dumpfile

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

Ответы [ 3 ]

0 голосов
/ 25 августа 2010

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

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

0 голосов
/ 07 января 2015

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
)
0 голосов
/ 25 августа 2010

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

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

...