Подтвердить что ты не робот

Как переместить репозиторий SVN на новый сервер

Мы хотели бы объединить два наших сервера вместе, и для этого нам потребуется установить SVN на "новый" сервер, а затем переместить все наши репозитории, которые мы установили на нашем "старом" сервере.

Легко ли это сделать? Возможно, используется опция "Переместить", которую предоставляет TortoiseSVN? Каков наилучший способ сделать это?

Будет ли это подходящим временем для реорганизации того, как настроен репозиторий?

4b9b3361

Ответ 1

Вы можете перенести репозиторий с помощью функции svnadmin dump. На сервере SVN введите svnadmin dump /absolute/path/to/the/repo > /tmp/repo.svndump. Это будет экспортировать весь репозиторий в текстовый файл в системном временном каталоге и назовите его "repo.svndump". Возможно, вы захотите сжать этот файл перед его переносом на новый сервер.

Как только вы экспортируете репо, вы можете перенести файл дампа на новый сервер и импортировать его так: svnadmin load /absolute/path/to/the/**new**/repo < repo.svndump.

См. 'svnadmin dump' и 'загрузка svnadmin 'для получения дополнительной информации.

После сброса репозитория и загрузки его на новый сервер вы должны использовать команду --relocate для переключения локальной копии на новый сервер.

Внимание: Если ваши репозитории используют любой externals, тогда у вас будут проблемы. Подробнее об этом см. мой вопрос в разделе "Ошибка сервера".

Ответ 2

Если новый сервер использует ту же операционную систему, вы можете просто скопировать всю папку репозитория на новый сервер. Не нужно сбрасывать и перезагружать его.

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

Внешние проблемы могут быть проблемой, но не обязательно. Если внешний репозиторий находился на одном сервере, вы, вероятно, указали внешний адрес с относительным URL-адресом. Если новый сервер использует ту же структуру, то все должно работать нормально.

Ответ 3

CLONE-SVN2SVN

Если svnadmin dump не является опцией, вы можете использовать clone-svn2svn bash script. Он копирует каталог SVN на другой сайт SVN с историей конкуренции или частичной ревизии. Ниже приведены основные параметры командной строки. Вы также можете установить версию, из которой вы хотите, чтобы клон начал копировать историю.

clone-svn2svn.sh <source-svn-url> <destination-svn-url>

Требования

Bash и git необходимы для работы script. Если вы находитесь на Windows или другой платформе, загрузите их с веб-сайта git -scm. Это установщик git с включенным bash.

Подробнее

script загружает исходную историю SVN во временный репозиторий git с помощью git-svn и загружает историю в репозиторий SVN.

Упущения

Автор в ревизиях в целевом репо будет пользователем script (самостоятельно). Однако каждое сообщение об изменении будет иметь дополнительную строку, указывающую оригинального автора. Так что это не так уж плохо.

Ответ 4

Будет ли это подходящее время для реорганизовать, как создается репо, как хорошо?

Отличное время для этого, так как вам придется все время переносить свой репозиторий, когда вы переносите его на новый сервер.