Перемещение репозитория Subversion на другой сервер


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

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

похоже, глядя в интернете, рекомендуемый способ-это использование:

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

и затем использовать:

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

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

метод выше кажется лучшим подходом?

6 66

6 ответов:

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

вам также нужно будет либо повторно проверить все ваши рабочие копии, либо использовать переключатель svn команда, которая просто переписывает URL-адреса. А еще удобным способом является использование различных диалогах TortoiseSVN ПМЖ команда, которая снижает риск ошибки во время процесса перемещения.

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

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

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

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

ссылки:

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

другой вариант:

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

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

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

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

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