Перенос SVN репозитория на другой сервер - инструкция

Материал из AOW

Перейти к: навигация, поиск

Перенос с использованием SSH

В этой статье представлен алгоритм переноса SVN репозитория с одного сервера на другой. Последовательность действий такова:

1. Авторизуемся по SSH на старом сервере. Вводим команду

svnadmin dump repositoryPath > repository.dumpfile

2. Получаем файл repository.dumpfile, его следует перенести на новый сервер. Затем выполнить

cd /path/to/new-repository-parent-directory
svnadmin create repository-name
svnadmin load repository-name < repository.dumpfile

3. Не забудьте поменять адрес на клиенте

svn switch --relocate oldurl newurl 


Перенос без возможности применения SSH

Иногда встает задача переноса SVN репозитория с сервера на котором у вас нет ssh доступа. Возникнуть такая задача может у пользователей oDesk, Google Code, SourceForge и других площадок SVN доступ по ssh к которым невозможен.

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

  • создаем чистый репозиторий;
  • синхронизируем его с удаленным при помощи svnsync;
  • делаем дамп нового репозитория;
  • заливаем дамп в новый репозиторий который и будет новым основным репозиторием.

Создаем временный репозиторий:

svnadmin create temp_repo

Здесь и далее temp_repo - имя временного репозитория.

Создаем внутри директории hooks пустой исполняемый файл:

echo '#!/bin/sh' > temp_repo/hooks/pre-revprop-change
chmod +x temp_repo/hooks/pre-revprop-change

Теперь синхронизируем наши репозитории:

svnsync init file://[full_path_to_repository]/temp_repo https://secure.odesk.com/svn/[odesk_s_reporsitory_name]
svnsync sync file://[full_path_to_repository]/temp_repo

Дело сделано, теперь получаем дамп:

svnadmin dump [full_path_to_repository]/temp_repo > repo_dump

Теперь в repo_dump мы имеем полный дамп удаленного репозитория который можно залить куда угодно.

Создадим новый репозиторий и зальем туда наш дамп:

cd /path/to/new-repository-parent-directory
svnadmin create repository-name
svnadmin load repository-name < repository.dumpfile

Осталось переключить проект на новый репозиторий:

svn switch --relocate oldurl newurl 


Ссылки

Личные инструменты

Разработка веб-сайтов, автоматизация.
По всем вопросам обращайтесь по телефонам:

+7 495 640 29 90
http://artofweb.ru