Перенос 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
Ссылки
- Перенос с использованием SSH - http://waelchatila.com/2007/03/06/1173223980000.html
- Перенос без возможности применения SSH - http://pogopixels.com/blog/dumping-a-svn-repository-from-a-remote-url/

