svn сервер синхронизируется автоматически - PullRequest
5 голосов
/ 25 января 2010

У меня есть сервер SVN на нашей локальной сети, на Windows. Разработчики используют и проверяют / выходят из этого. Просто чтобы быть в безопасности, мы взяли сервер с RackSpace Linux. Можно ли сделать автоматическую еженедельную синхронизацию с локального сервера SVN на удаленный. Удаленный будет в основном использоваться в качестве удаленного резервного копирования, но на всякий случай, если кто-то захочет получить доступ, он может сделать это, поскольку для нашей локальной сети нет статического или внешнего IP-адреса.

Ответы [ 3 ]

4 голосов
/ 25 января 2010

Я бы предложил использовать для этого svnsync . При запуске из ловушки post-commit этот инструмент (часть дистрибутива svn) обеспечивает живую синхронизацию между 2 (или более) серверами svn.

0 голосов
/ 25 января 2010

Вы можете использовать svnadmin dump , чтобы создать дамп целого хранилища. Вы можете использовать ловушку postcommit вместе с той же командой, чтобы вывести коммит в автономном формате, который позже можно будет применить

Комбинируя их и rsync, вы можете эффективно реплицировать свой сервер на любой другой сервер. Если ваш резервный сервер доступен только для чтения, он может быть использован. В случае сбоя простой переключатель svn позволит вашим разработчикам использовать сервер резервного копирования.

Я бы порекомендовал вам setup acls , чтобы запретить запись на сервер резервного копирования, если он не станет главным.

Еще одно решение, упомянутое Питером, может быть svk, но его нельзя использовать для полной автоматической синхронизации: что произойдет, если на обоих серверах внесены противоречивые изменения? скрипт потерпит неудачу или покалечит это. Все, что связано с распределенным слиянием, должно проверяться человеком.

Еще одним решением будет svn --mirror way

Вам следует прочитать это для получения более подробной информации о синхронизации репозиториев: Как синхронизировать два хранилища Subversion? :)

0 голосов
/ 25 января 2010

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

Если вам нужен доступ для чтения / записи на обоих сайтах, может быть безопаснее и проще использовать что-то вроде git и использовать git-svn на стороне клиента в качестве «обратной совместимости».

Другой вариант - использовать SVK , распределенную систему управления версиями, построенную на основе SVK. Но это также не будет полностью прозрачным для клиентов.

...