Как сделать резервную копию и восстановить весь исходный код в SVN?
Вопрос
Сейчас я использую Windows XP. Если я просто скопировать всю папку хранилища в визуальном SVN, Как только сервер не работает, как я могу восстановить его через папку резервного копирования? другое лучшее решение для резервного копирования и восстановления в Visual SVN?
Кстати, есть ли способ резервного копирования и восстановления в визуальном управлении исходным кодом?
Решение
Вы можете просто скопировать весь каталог внутрь и наружу. Файлы есть файлы, в них нет ничего волшебного.
Если вы хотите сделать что-то более сложное, например, каким-либо образом отредактировать содержимое репозитория перед восстановлением, тогда вам нужно выполнить dump и load.
Другие советы
svnadmin dump /path/to/repository | bzip2 -9c > svn-backup.bz2
Шаг сжатия не является обязательным, конечно.
Основное преимущество этого по сравнению с " копировать дерево " В другом ответе рекомендуется использовать метод Subversion " dump " Формат является лучшим архивным форматом, чем большинство форматов баз данных, используемых Subversion в своем репозитории. (Это компромисс между скоростью и простотой.) Вы можете прочитать файл дампа в текстовом редакторе, легко разобрать его и & # 8212; самый важный & # 8212; импортируйте его в другой репозиторий Subversion, используя другой сервер базы данных.
Восстановите вышеуказанный файл с помощью:
bzip2 -dc svn-backup.bz2 | svnadmin load /path/to/repository
Это то, что я использую:
#!/bin/bash
mkdir /tmp/backup_svn
for dir in /var/www/svn/*/
do
dir=${dir%*/}
svnadmin dump "${dir}" > "/tmp/backup_svn/${dir##*/}.dmp"
echo "--- Dump ${dir##*/} done!"
done
Чтобы восстановить дамп, вам нужно создать папку de repo до:
svnadmin create /var/www/svn/test
И их:
svnadmin load /var/www/svn/test/ < /tmp/backup_svn/test.dmp
Этот метод восстановит все ревизии / теги / ветви в вашем хранилище.
Вы должны использовать горячую копию svnadmin создать резервную копию вашего хранилища.