Как переместить SVN-репозиторий на новый сервер - PullRequest
34 голосов
/ 24 сентября 2010

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

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

Это было бы хорошее время для реорганизации того, как настроен репозиторий?

Ответы [ 4 ]

58 голосов
/ 24 сентября 2010

Вы можете перенести репозиторий с помощью функции 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 load ' для получения дополнительной информации.

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

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

2 голосов
/ 25 сентября 2010

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

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

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

1 голос
/ 02 июня 2016

CLONE-SVN2SVN

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

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

Требования

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

Подробности

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

Недостатки

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

0 голосов
/ 24 сентября 2010

Это было бы хорошее время для реорганизовать, как репо настроен как хорошо?

Идеальное время для этого, так как вам все равно придется отключить хранилище во время его миграции на новый сервер.

...