Как лучше всего реплицировать репозиторий контроля версий?
-
08-06-2019 - |
Вопрос
Вот сценарий, который у меня есть.У меня есть репозиторий cvs в одном месте (А), и я хочу скопировать его и синхронизировать с репозиторием в другом месте (Б).Это будет однонаправленная синхронизация от А к Б.Как лучше всего это сделать?Если в CVS это невозможно, то какую систему контроля исходного кода вы бы порекомендовали для этого?Спасибо
Решение
При использовании CVS я не знаю никаких инструментов для этого, кроме синхронизации файлов.Вы можете добиться этого, используя такие инструменты, как rsync
(Юникс) или xcopy
/robocopy
(Окна).
Если вы планируете перейти на Subversion, она предоставляет инструмент svnsync, который позволяет синхронизировать репозиторий из другого.
Другие советы
Я бы рекомендовал вам перейти с CVS на подходящую распределенную систему контроля версий, например мерзавец, который естественным образом обеспечит такую функциональность.
Subversion также предоставляет svnsync, который делает то же самое.
Если вы используете подход rsync/filecopy с CVS, важно синхронизировать файлы только в то время, когда нет активной фиксации.В противном случае файл блокировки репозитория будет скопирован, и вы не сможете извлечь/обновить его на целевой стороне до следующей синхронизации.
Одна только эта причина может сделать CVS плохим выбором.Путь перехода от CVS к Subversion довольно плавный, и существуют инструменты для импорта полного репозитория CVS с историей в Subversion.
Рассмотрите Git или Mercurial, если вы хотите заняться по-настоящему распределенным управлением версиями, но похоже, что это будет излишним для ваших нужд «только для чтения».
Лучший (и, возможно, самый дорогой) способ: Clearcase Мультисайт
Но если вы ищете открытый исходный код, Гит быстро заменяет SVN повсюду..