Перемещение хранилища Subversion на другой сервер - PullRequest
66 голосов
/ 11 декабря 2008

У меня есть сервер, на котором размещена моя база кодов Subversion. Этот сервер в настоящее время является Windows Server 2003 , и мой ИТ-администратор хочет обновить его до Windows Server 2008 .

Это означает, что мне нужно будет переместить мой репозиторий Subversion, когда сервер будет собран, и мне было интересно узнать, как лучше всего перенести репозиторий на новый сервер.

Похоже, при просмотре в Интернете рекомендуется использовать:

svnadmin dump /path/to/repository > repository-name.dmp

А затем используйте:

svnadmin create repository-name
svnadmin load repository-name< repository-name.dmp

Для импорта репозитория.

Способ, описанный выше, кажется наилучшим?

Ответы [ 6 ]

58 голосов
/ 11 декабря 2008

Да, выгрузка и загрузка хранилища - это путь. Прямое копирование папки репозитория является жизнеспособным вариантом, если и только если вы уверены, что никто не будет обращаться к репозиторию во время процесса копирования (или вы можете сделать «горячую копию» репозитория, которая может справиться с этими случаями безопасным образом).

Вам также нужно будет повторно оформить все свои рабочие копии или использовать команду svn switch , которая просто перезаписывает URL-адреса. Более удобный способ - использовать команду TortoiseSVN Relocate , которая снижает риск ошибки в процессе перемещения.

27 голосов
/ 12 декабря 2008

Мои сценарии восстановления выглядят так:

svnadmin create repository-name --fs-type fsfs
svnadmin load   repository-name --force-uuid < repository-name.dmp

Первая строка гарантирует, что хранилище использует FSFS бэкэнд (что рекомендуется многими источниками, включая этот: Насколько FSFS лучше , и более новые версии Subversion AFAIK используют его по умолчанию). FSFS - имя реализации файловой системы Subversion.

Во второй строке хранится UUID хранилища для более простого перехода (без переключателя --force-uuid перемещение рабочей копии завершится неудачей).

Некоторые ссылки:

9 голосов
/ 12 декабря 2008

Вы также можете использовать svnsync для перемещения хранилища; Таким образом, вы можете перенести все данные без необходимости удалять «старый» репозиторий. Это также единственный известный мне способ получения ваших данных из размещенных сред, где у вас нет доступа к оболочке или доступа к дампу хранилища.

5 голосов
/ 27 октября 2013

Другая альтернатива:

используйте svnrdump. http://www.crowbarsolutions.com/backing-up-restoring-a-remote-svn-repository/

«Вам понадобится инструмент под названием svnrdump. Как описано в Apache,« svnrdump копирует функциональность дампов svnadmin и загрузки svnadmin, но работает на удаленных репозиториях, а не требует доступа администратора (локальной файловой системы) к источнику ». или целевой репозиторий. ”

4 голосов
/ 11 декабря 2008

Если вы используете репозиторий типов файловой системы, вы можете буквально взять папку, содержащую ваш репозиторий, и переместить ее. Если вы меняете серверы, скорее всего, вам нужно будет изменить местоположение, в котором ваш локальный рабочий каталог ищет хранилище, с помощью команды «Переместить».

1 голос
/ 16 апреля 2014

Самый простой способ - использовать:

svnadmin hotcopy path/to/your_current_directory /path/to/your_destination_directory
...