Ответ 1
Как синхронизировать два репозитория Subversion?
Можно ли использовать ту же рабочую копию и поместить ее на два разных SVN-сервера (commit, update,...)?
Как синхронизировать два репозитория Subversion?
Да, вы можете использовать команду Relocate (thanks, Peter) для подключения вашей рабочей копии к первому репозиторию, совершить там, а затем переместить во второй репозиторий и зафиксировать там. Лучше сделайте копию папки рабочей копии где-то в другом месте.
Если несколько человек будут разговаривать с разными серверами svn, у вас возникнут проблемы. Два сервера не будут разговаривать друг с другом, чтобы убедиться, что у них нет конфликтов, используются одни и те же номера версий и т.д. По крайней мере, я не знаю ни одного svn-хака, который это сделает. (Существуют и другие распределенные системы версий, основанные на svn, такие как svk.)
Какая главная цель здесь? Можете ли вы только нажимать на один сервер, но затем иметь привязку после фиксации для репликации изменения на другой сервер, что позволит легко доступ только для чтения из другого места?
Чем больше информации вы можете дать о том, что хотите, тем более вероятно, что мы сможем вам помочь.
Системы управления распределенной версией, такие как Mercurial, Bazaar или Git, лучше подходят для таких задач. Вы можете вносить изменения в любое количество репозиториев.
Возможно, но ужасно. В настоящее время я должен это сделать, потому что мой интернет-провайдер мертв мозгом, и у меня есть трудная проблема с получением различных центров обработки данных в Европе. Итак, я нажимаю на свой сервер в Канаде, который сразу же подталкивает к реальному репозиторию.
В двух случаях я фактически оказался с другим номером ревизии (+1), что означает, что мой следующий svn up стал очень интересным.
Итак, я просто использовал SSHFS (mount FUSE) для редактирования файлов на месте в канадской копии, а затем передал напрямую. Его все еще настоящая боль и одна из многих причин, почему я так сильно люблю Mercurial.
Сначала проверьте на каждом сервере свой код, а затем создайте script svn_up.sh следующим образом:
ssh server_one_ip_address svn up /path_to_working_copy_on_server1
ssh server_two_ip_address svn up /path_to_working_copy_on_server2
Использовать sh svn_up.sh вместо svn up