2008-12-11 6 views
64

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

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

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

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

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

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

Чтобы импортировать в хранилище.

Является ли метод выше лучшим приемом?

+1

Вот как я это делаю – cciotti 2008-12-11 20:43:29

+3

это„рекомендуемый путь“, так почему же вы сомневаетесь, что это хорошо подход? Что означает «лучший», так или иначе? – hop 2008-12-12 13:13:43

ответ

57

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

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

4

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

27

Моя восстановить сценарии, как это:

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

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

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

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

9

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

5

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

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

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

1

Самым простым способ заключается в использовании:...

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