все что связано с моей работой
Главная » Unix » Перенос SVN репозитория

Перенос SVN репозитория

Перенос с использованием 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/

Комментариев нет

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.