Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

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

SVN-зеркальный способ

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

svn switch -переместить master_url

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

[Правка - Проверка TortoiseSVN документация кажется, что у вас может быть TortoiseSVN выполнение скриптов перехвата на стороне клиента.Возможно, на этом этапе вам удастся создать сценарий до / после фиксации.Либо это, либо попробуйте посмотреть, сможете ли вы использовать Интерфейс автоматизации TortoiseSVN чтобы сделать это].

Путь SVK

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

Способ git-svn

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

Заключительные слова

Все зависит от вашей среды разработки и требуемого уровня интеграции.В зависимости от вашей среды разработки (и если вы можете изменить SCM) возможно, вы захотите взглянуть на другие полностью распределенные SCM (подумайте Переменчивый/Базар/Мерзавец/...), которые поддерживают распределенную разработку "из коробки".

Ты должен попробовать Система контроля версий SVK

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Работает "из коробки" и может быть настроена в пару кликов с помощью консоли VisualSVN Server Manager MMC.

VisualSVNServerManagerConsoleMultisite

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top