Как синхронизировать два репозитория Subversion?



У моей компании есть дочерняя компания с медленным подключением к интернету. Наши разработчики там страдают, чтобы взаимодействовать с нашим центральным Subversion сервер. Можно ли настроить ведомое устройство / зеркало для них? Они будут взаимодействовать локально с сервером, и все коммиты будут автоматически синхронизированы с главным сервером.



Это должно работать максимально прозрачно для разработчиков. Удобство использования является обязательным.



пожалуйста, никаких предложений по изменению наша система контроля версий.

721   7  

7 ответов:

Subversion 1.5 представила поддержку прокси-сервера, когда вы используете http для размещения своего репозитория. Разработчики могут проверить свои рабочие копии из ведомого устройства. Затем все операции только для чтения (diff, log, update и т. д.) будут использовать ведомое устройство. При фиксации ведомое устройство прозрачно передает всю операцию записи ведущему устройству.

это возможно, но не обязательно просто: проблема, которую вы пытаетесь решить, опасно близка к настройке распределенной среды разработки, которая не совсем подходит для SVN.

путь SVN-зеркала

можно использовать svn mirror как описано в документации SVN book для создания только для чтения зеркало основного репозитория. Каждый из ваших разработчиков взаимодействует с ближайшим к ним зеркалом. Однако пользователи ведомый репозиторий придется использовать

переключатель svn --переместить master_url

прежде чем они смогут совершить, и они должны будут помнить, чтобы переместить обратно на раба, как только они будут сделаны. Это может быть автоматизировано с помощью сценария-оболочки вокруг команд изменения репозитория на SVN, если вы используете клиент командной строки. Имейте в виду, что операция перемещения в то время как быстро добавляет немного накладных расходов. (И будьте осторожны, чтобы дублировать репозиторий uuid-см. SVN документация.)

[Edit-проверка TortoiseSVN документация кажется, что вы можете иметь TortoiseSVN выполнить Хук скрипты на стороне клиента. На этом этапе вы можете создать сценарий предварительной/последующей фиксации. Либо это, либо попытаться увидеть, если вы можете использовать интерфейс автоматизации TortoiseSVN сделать это].

путь SVK

svk - это набор скриптов Perl, которые эмулируют a распределенная служба зеркального отображения по SVN. Вы можете настроить его так, чтобы локальная ветвь (зеркало) была общей для нескольких разработчиков. Тогда основное использование для разработчиков будет полностью прозрачным. Вам придется использовать клиент svk для сбора вишни, слияния и звездообразования. Это выполнимо, если вы можете получить вашу голову вокруг распределенной понятия.

путь git-svn

хотя я никогда не использовал это сам, вы также можете использовать удаленные разработчики git локально и использовать git-svn шлюз для синхронизации.

последние слова

все зависит от среды разработки и требуемого уровня интеграции. В зависимости от вашей IDE (и если вы можете изменить SCM) возможно, вы захотите взглянуть на другие полностью распределенные SCMs (подумайте Mercurial/базар/Git/...) которые поддерживают распределенную разработку из коробка.

вы должны попробовать система управления версиями SVK

SVK представляет собой децентрализованную систему управления версиями, построенную с надежной файловой системой Subversion. Он поддерживает зеркальное отображение репозитория, отключенную работу, слияние с учетом истории и интегрируется с другими системами управления версиями, а также популярными визуальными инструментами слияния.

по этой ссылке есть текст о использование SVK для синхронизации SVN Репозитории

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

например, Apache делает это, чтобы отразить их репозиторий на разных континентах. Главный репозиторий находится в США, но если я получаю доступ к репозиторию из ЕС, я получаю локальное зеркало, которое работает так же хорошо, как и главный сервер.

inotify-tools хорошо работает для меня, подробности указаны на этом сайте:

http://planet.admon.org/synchronize-subversion-repositories-with-inotify-tools/

существует коммерческое решение, которое обеспечивает истинную активную репликацию (не master-slave) репозиториев Subversion, если вам нужна производительность и безопасность данных за пределами того, что предоставляет svnsync, называемого "Subversion MultiSite".

отказ от ответственности: я работаю на компанию, которая делает это решение

сервер VisualSVN Многосайтовая Репликация Репозитория был разработан для этого случая.

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

Это должно работать максимально прозрачно для разработчиков. Удобство использования является обязательным.

  • репликация между ведомыми устройствами и ведущим устройством прозрачна и автоматический,

  • каждый главный и ведомый репозиторий является доступным для записи репозиторием Subversion с точки зрения пользователя,

  • работает из коробки и может быть настроен в несколько кликов через консоль VisualSVN Server Manager MMC.

VisualSVNServerManagerConsoleMultisite

Comments

    Ничего не найдено.