Безопасно ли перемещать SVN для синхронизации кода с двумя хранилищами Subversion? - PullRequest
3 голосов
/ 29 октября 2010

Варианты этого вопроса задавались много раз, но ни один из ответов не разъяснил, что меня интересует:

Я хотел бы (очевидно ... :) синхронизировать мою локальную рабочую копию с двумя репозиториямина двух разных серверах.Если я использую svn switch с опцией --relocate, возможно ли (и достаточно безопасно) поддерживать синхронизацию с обоими репозиториями (при необходимости вручную объединяя изменения) и каковы предостережения?

Предыстория: на одном сервере размещена моя личная svn, на другом - «официальная» svn, к которой несколько человек имеют доступ и отправляют изменения.

Основная мотивация для сохранения дополнительной копии кодав моем личном SVN это то, что

  1. Я могу делать "грязные" (непроверенные) коммиты, а
  2. У меня есть другой код, полагающийсяна код из общего svn в моем личном svn, так что если официальный svn когда-нибудь пропадет, вся история кода из моего svn станет бесполезной.

1 Ответ

2 голосов
/ 07 ноября 2010

Краткий ответ: нет.

svn switch - для переключения на новый URL-адрес того же хранилища.Subversion не может переключаться между двумя репозиториями с разным содержимым.

В частности, svn проверяет UUID хранилища, чтобы предотвратить случайное переключение на другое хранилище.Если бы вам пришлось обойти эту проверку (например, путем создания двух репо с одним и тем же UUID), а затем переключиться на «официальное» репо после «грязного» коммита, svn все равно не знает, каксделать правильную вещь.Возможно, он просто подумает, что его рабочая копия повреждена, и откажется выполнять какие-либо операции commit или update.

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

...