VisualSVN Server для Windows включает в себя встроенную функцию для резервного копирования и проверки SVN-репозиториев по расписанию: visualsvn.com/server/features/backup
я не знаю наверняка, но наверняка некоторые инструменты, такие как 7-zip, смогут сжимать данные из STDIN, а это значит, что вы также можете использовать первый стиль в Windows.
Nickf
5
Я просто смотрю на это сам, и один комментарий из документации svnbook.red-bean.com/nightly/en/… , что вы получите очень большой вывод дампа svnadmin, если вы не используете опцию --deltas.
Используя 7Zip: svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn это создаст файл с именем 'backup.7z', который содержит один файл 'backupname.svn', который является выходным svnadmin dump.
Мэтт
4
@ Джош Стодола Баш :for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
Вы можете запустить эту команду в любое время и создать безопасную копию хранилища, независимо от того, используют ли другие процессы хранилище.
Вы можете, конечно, ZIP (желательно 7-Zip) резервную копию. ИМХО Это самый простой вариант резервного копирования: в случае аварии мало что можно сделать, кроме как разархивировать его обратно на место.
@daremon: Я предлагаю вам прочитать ответы на посты, на которые вы ссылаетесь, в частности, тот, в котором упоминается дамп svnadmin, не включает контрольные файлы репо.
Powerlord
близкая гонка, но я голосую за свалку svnadmin после прочтения ответов, предложенных Р.
Бемроузом
Команда hotcopy не перезаписывает и не увеличивает создаваемые резервные копии. Поэтому, если вы планируете автоматизировать его в Windows с помощью планировщика задач, посмотрите на следующий пакетный файл: cfchimp.com/wordpress/2008/05/…
Райан Сэмпсон,
1
Слово предупреждения. Не копируйте горячую копию svnsync, отражающую копию хранилища, пока svnsync работает! Полученная копия может быть повреждена. Смотрите эту ветку для деталей: subversion.open.collab.net/ds/...
zvolkov
24
На веб-сайте Subversion доступен скрипт hotbackup.py, который очень удобен для автоматизации резервного копирования.
Я использую svnsync , который устанавливает удаленный сервер в качестве зеркала / ведомого. У нас был сервер отключен две недели назад, и я смог довольно легко переключить ведомое устройство в исходное положение (нужно было только сбросить UUID в хранилище ведомого устройства к исходному).
Еще одним преимуществом является то, что синхронизацию может выполнять посредник, а не как задача на любом сервере. У меня был клиент для двух VPN, синхронизирующих репозиторий между ними.
так что он синхронизирует последние версии репо между двумя, очевидно?
PositiveGuy
1
Хотя это и есть в названии, я не знаю, что я бы назвал это «синхронизацией». Это действительно резервная копия, где она будет принимать ревизии на главном сервере и помещать их на ведомый. Если вы вносите изменения в раба, они либо нарушат «синхронизацию», либо приведут к безумию. Предполагаемое использование инструмента - создавать сторонние зеркала только для чтения, но он выполняет замечательную работу по созданию резервного сервера.
Том Мэйфилд,
1
Преимущество svnsync в том, что вы можете запускать это очень часто. Каждые десять минут или даже при каждом коммите (используя хук). Преимущество этого состоит в том, что можно уменьшить потенциальную потерю данных, которую вы могли бы получить между последней резервной копией и потерянным живым репо.
Поэтому, если вам разрешено остановить сервер, сделайте это и просто скопируйте репозиторий, либо с помощью какого-либо скрипта, либо с помощью инструмента резервного копирования. Cobian Backup прекрасно подходит для этого, поскольку он может автоматически останавливать и запускать службы, а также выполнять инкрементное резервное копирование, поэтому вы выполняете резервное копирование только тех частей репозитория, которые были недавно изменены (полезно, если репозиторий большой и резервное копирование выполняется в удаленном месте). ).
Пример:
Установите Cobian Backup
Добавить задачу резервного копирования:
Установить источник в папку хранилища (например C:\Repositories\),
Добавить событие после резервного копирования, "START_SERVICE"VisualSVN,
Установите другие параметры по мере необходимости. Мы создали инкрементные резервные копии, включая удаление старых, расписание резервного копирования, назначение, сжатие вкл. расщепление архивов
Существует два основных способа резервного копирования сервера SVN. Во-первых, это горячая копия, которая создаст копию файлов репозитория. Основная проблема этого подхода заключается в том, что он сохраняет данные о базовой файловой системе, поэтому у вас могут возникнуть трудности с попыткой восстановления. этот вид резервного копирования в другой тип сервера SVN или другой машине. Существует другой тип резервной копии, называемый dump, который не будет сохранять любую информацию о лежащей в основе файловой системе и ее доступную для хранения на любом SVN-сервере, основанном на подрывной деятельности tigiris.org.
Что касается инструмента резервного копирования, вы можете использовать инструмент svnadmin (он может выполнять горячее копирование и создание дампа) из командной строки, эта консоль находится в том же каталоге, где находится ваш сервер SVN, или вы можете использовать Google для инструментов резервного копирования SVN.
Я рекомендую вам создавать резервные копии обоих типов и доставлять их из офиса на свою учетную запись электронной почты, в сервис Amazon 3, FTP или Azure. Таким образом, у вас будет надежное резервное копирование без необходимости размещать сервер SVN где-то вне Ваш офис.
Этот простой инструмент позволяет сделать резервную копию локального и удаленного хранилища Subversion. Программное обеспечение работает так же, как и «svnadmin», но не является интерфейсом GUI. Вместо этого используйте непосредственно библиотеки Subversion для разрешения создания дампа в автономном режиме без каких-либо дополнительных инструментов.
Спасибо, что поделились этим, делайте в точности так, как указано.
Эд ДеГанье
3
Мне нравится просто копировать весь каталог репозитория в папку с резервными копиями. Таким образом, если что-то случится, вы можете просто скопировать каталог обратно и быть готовым к немедленному переходу.
Просто убедитесь, что сохранили разрешения, если это необходимо. Обычно это касается только машин Linux.
это не совсем безопасно, если кто-то делает коммит во время операции копирования - со мной такое случалось, даже когда только 4 человека имели доступ к репо и использовали его нечасто. См. Ответ Дункана об использовании горячей копии.
Nickf
Однако, если вы работаете в одиночку, то я полагаю, что это безопасный способ сделать резервную копию репо? Я использую Subversion для своих личных проектов, и это то, чем я сейчас занимаюсь.
Эндрю Гаррисон
3
Для размещенных репозиториев вы можете использовать svn версии 1.7 svnrdump, что аналогично svnadmin dumpлокальным репозиториям. В этой статье представлен хороший обзор, который сводится к следующему:
Если вы используете формат репозитория FSFS (по умолчанию), то вы можете скопировать сам репозиторий, чтобы сделать резервную копию. В более старой системе BerkleyDB хранилище не зависит от платформы, и вы, как правило, захотите использовать дамп svnadmin.
@echo off
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set folder=%date:~6,4%%date:~3,2%%date:~0,2%%hour%%time:~3,2%
echo Performing Backup
md "\\HOME\Development\Backups\SubVersion\%folder%"
svnadmin dump "C:\Users\Yakyb\Desktop\MainRepositary\Jake" | "C:\Program Files\7-Zip\7z.exe" a "\\HOME\Development\Backups\SubVersion\%folder%\Jake.7z" -sibackupname.svn
Это пакетный файл, который у меня работает, который выполняет резервное копирование
Это требует времени и говорит, что он загружает журналы из хранилища. Он создает набор файлов внутри C:\Documents and Settings\nverma\.svk\local.
Чтобы обновить этот локальный репозиторий последним набором изменений из удаленного, просто время от времени выполняйте предыдущую команду.
Теперь вы можете играть со своим локальным репозиторием ( /home/user/.svk/localв этом примере), как если бы это был обычный репозиторий SVN!
Единственная проблема с этим подходом состоит в том, что локальный репозиторий создается с шагом ревизии фактической ревизией в удаленном репозитории. Как кто-то написал:
Команда svk miror генерирует коммит в только что созданном репозитории. Таким образом, все коммиты, созданные при последующей синхронизации, будут иметь номера ревизий, увеличенные на единицу по сравнению с удаленным общедоступным репозиторием.
Но это было нормально для меня, так как я хотел только время от времени делать резервную копию удаленного хранилища, и ничего больше.
Проверка:
Чтобы проверить, используйте клиент SVN с локальным хранилищем, как это:
svn checkout "file:///C:/Documents and Settings\nverma/.svk/local/" <local-dir-path-to-checkout-onto>
Затем эта команда отправляет последнюю версию из локального хранилища. В конце это говорит Checked out revision N. Это Nбыло больше, чем реальная ревизия, найденная в удаленном репозитории (из-за проблемы, упомянутой выше).
Чтобы убедиться, что svk также принес всю историю, проверка SVN была запущена с различными более старыми ревизиями с использованием -r2, 10, 50 и т. Д. Затем файлы в этой версии <local-dir-path-to-checkout-onto>были подтверждены из этой ревизии.
В конце, заархивируйте каталог C:/Documents and Settings\nverma/.svk/local/и сохраните его где-нибудь. Продолжайте делать это регулярно.
как уже говорили другие, hot-backup.py из команды Subversion имеет некоторые приятные функции, а не просто svnadmin hotcopy
Я запускаю запланированное задание на скрипте Python, который работает для всех моих репозиториев на машине, и использует горячую резервную копию, чтобы сохранить на несколько дней оперативные копии (параноидальные повреждения) и svnadmin svndumpудаленную машину. Восстановление действительно легко от этого - пока.
Ответы:
Вы можете использовать что-то вроде (Linux):
Поскольку Windows не поддерживает GZip, это просто:
источник
svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn
это создаст файл с именем 'backup.7z', который содержит один файл 'backupname.svn', который является выходнымsvnadmin dump
.for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
Мы используем горячую копию svnadmin, например:
Согласно книге :
Вы можете, конечно, ZIP (желательно 7-Zip) резервную копию. ИМХО Это самый простой вариант резервного копирования: в случае аварии мало что можно сделать, кроме как разархивировать его обратно на место.
источник
На веб-сайте Subversion доступен скрипт hotbackup.py, который очень удобен для автоматизации резервного копирования.
http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in
источник
Вот скрипт Perl, который будет:
Сценарий:
Сценарий источника и более подробная информация о рациональном для этого типа резервного копирования.
источник
Я использую svnsync , который устанавливает удаленный сервер в качестве зеркала / ведомого. У нас был сервер отключен две недели назад, и я смог довольно легко переключить ведомое устройство в исходное положение (нужно было только сбросить UUID в хранилище ведомого устройства к исходному).
Еще одним преимуществом является то, что синхронизацию может выполнять посредник, а не как задача на любом сервере. У меня был клиент для двух VPN, синхронизирующих репозиторий между ними.
источник
свнадмин hotcopy
источник
svnbackup в Google Code, консольное приложение .NET.
источник
Вы можете создать резервную копию ( дамп ) с помощью
svnadmin dump
.Затем вы можете импортировать его с помощью
svnadmin load
.Подробная ссылка в SVNBook: «Перенос данных из репозитория с помощью svnadmin»
источник
В принципе, можно безопасно скопировать папку репозитория, если сервер svn остановлен. (источник: https://groups.google.com/forum/?fromgroups#!topic/visualsvn/i_55khUBrys%5B1-25%5D )
Поэтому, если вам разрешено остановить сервер, сделайте это и просто скопируйте репозиторий, либо с помощью какого-либо скрипта, либо с помощью инструмента резервного копирования. Cobian Backup прекрасно подходит для этого, поскольку он может автоматически останавливать и запускать службы, а также выполнять инкрементное резервное копирование, поэтому вы выполняете резервное копирование только тех частей репозитория, которые были недавно изменены (полезно, если репозиторий большой и резервное копирование выполняется в удаленном месте). ).
Пример:
Добавить задачу резервного копирования:
Установить источник в папку хранилища (например
C:\Repositories\
),Добавить событие предварительного резервного копирования
"STOP_SERVICE"
VisualSVN,Добавить событие после резервного копирования,
"START_SERVICE"
VisualSVN,Установите другие параметры по мере необходимости. Мы создали инкрементные резервные копии, включая удаление старых, расписание резервного копирования, назначение, сжатие вкл. расщепление архивов
Прибыль!
источник
Существует два основных способа резервного копирования сервера SVN. Во-первых, это горячая копия, которая создаст копию файлов репозитория. Основная проблема этого подхода заключается в том, что он сохраняет данные о базовой файловой системе, поэтому у вас могут возникнуть трудности с попыткой восстановления. этот вид резервного копирования в другой тип сервера SVN или другой машине. Существует другой тип резервной копии, называемый dump, который не будет сохранять любую информацию о лежащей в основе файловой системе и ее доступную для хранения на любом SVN-сервере, основанном на подрывной деятельности tigiris.org.
Что касается инструмента резервного копирования, вы можете использовать инструмент svnadmin (он может выполнять горячее копирование и создание дампа) из командной строки, эта консоль находится в том же каталоге, где находится ваш сервер SVN, или вы можете использовать Google для инструментов резервного копирования SVN.
Я рекомендую вам создавать резервные копии обоих типов и доставлять их из офиса на свою учетную запись электронной почты, в сервис Amazon 3, FTP или Azure. Таким образом, у вас будет надежное резервное копирование без необходимости размещать сервер SVN где-то вне Ваш офис.
источник
Вот графический инструмент Windows для создания дампов локальных и удаленных репозиториев Subversion:
https://falsinsoft-software.blogspot.com/p/svn-backup-tool.html
Описание инструмента гласит:
Этот простой инструмент позволяет сделать резервную копию локального и удаленного хранилища Subversion. Программное обеспечение работает так же, как и «svnadmin», но не является интерфейсом GUI. Вместо этого используйте непосредственно библиотеки Subversion для разрешения создания дампа в автономном режиме без каких-либо дополнительных инструментов.
Надеюсь, это поможет ...
источник
Мне нравится просто копировать весь каталог репозитория в папку с резервными копиями. Таким образом, если что-то случится, вы можете просто скопировать каталог обратно и быть готовым к немедленному переходу.
Просто убедитесь, что сохранили разрешения, если это необходимо. Обычно это касается только машин Linux.
источник
Для размещенных репозиториев вы можете использовать svn версии 1.7
svnrdump
, что аналогичноsvnadmin dump
локальным репозиториям. В этой статье представлен хороший обзор, который сводится к следующему:После того, как вы загрузили файл дампа, вы можете импортировать его локально
или загрузить его на хост по вашему выбору.
источник
Если вы используете формат репозитория FSFS (по умолчанию), то вы можете скопировать сам репозиторий, чтобы сделать резервную копию. В более старой системе BerkleyDB хранилище не зависит от платформы, и вы, как правило, захотите использовать дамп svnadmin.
В разделе документации по резервному копированию svnbook рекомендуется использовать
svnadmin hotcopy
команду, поскольку она позаботится о таких проблемах, как используемые файлы и тому подобное.источник
Это пакетный файл, который у меня работает, который выполняет резервное копирование
источник
Для ежедневного и полного резервного копирования просто используйте сценарии резервного копирования SVN здесь .
источник
Я скомпилировал шаги, которые я выполнил, чтобы сделать резервную копию удаленного репозитория SVN моего проекта.
Это требует времени и говорит, что он загружает журналы из хранилища. Он создает набор файлов внутри
C:\Documents and Settings\nverma\.svk\local
.Чтобы обновить этот локальный репозиторий последним набором изменений из удаленного, просто время от времени выполняйте предыдущую команду.
Теперь вы можете играть со своим локальным репозиторием (
/home/user/.svk/local
в этом примере), как если бы это был обычный репозиторий SVN!Единственная проблема с этим подходом состоит в том, что локальный репозиторий создается с шагом ревизии фактической ревизией в удаленном репозитории. Как кто-то написал:
Но это было нормально для меня, так как я хотел только время от времени делать резервную копию удаленного хранилища, и ничего больше.
Проверка:
Чтобы проверить, используйте клиент SVN с локальным хранилищем, как это:
Затем эта команда отправляет последнюю версию из локального хранилища. В конце это говорит
Checked out revision N
. ЭтоN
было больше, чем реальная ревизия, найденная в удаленном репозитории (из-за проблемы, упомянутой выше).Чтобы убедиться, что svk также принес всю историю, проверка SVN была запущена с различными более старыми ревизиями с использованием
-r
2, 10, 50 и т. Д. Затем файлы в этой версии<local-dir-path-to-checkout-onto>
были подтверждены из этой ревизии.В конце, заархивируйте каталог
C:/Documents and Settings\nverma/.svk/local/
и сохраните его где-нибудь. Продолжайте делать это регулярно.источник
как уже говорили другие, hot-backup.py из команды Subversion имеет некоторые приятные функции, а не просто
svnadmin hotcopy
Я запускаю запланированное задание на скрипте Python, который работает для всех моих репозиториев на машине, и использует горячую резервную копию, чтобы сохранить на несколько дней оперативные копии (параноидальные повреждения) и
svnadmin svndump
удаленную машину. Восстановление действительно легко от этого - пока.источник
1.1 Создать дамп из SVN (Subversion) хранилища
Реальный пример
1.2 Gzip созданный дамп
Реальный пример
1.3 Свалка SVN и Gzip с однострочником
Реальный пример
Как сделать резервную копию (дамп) и восстановить (загрузить) SVN (Subversion) репозиторий в Linux.
Ссылка: SVN Subversion резервного копирования и восстановления
источник