Проект

Общее

Профиль

Действия

Svn-git » История » Редакция 3

« Предыдущее | Редакция 3/4 (Разница(diff)) | Следующее »
Андрей Волков, 2011-12-12 13:22


Миграция SVN -> GIT

Пример миграции:

Задача: мигрировать svn репозиторий https://svn.nolty.ru/abackup/ в git репозиторий :abackup.git

Находим список пользователей (коммитеров SVN):

svn log https://svn.nolty.ru/abackup/ |grep '^r[0-9]\+ ' | cut -d ' ' -f3 | sort | uniq > ~/svn.nolty.ru-git-converted/git-users.txt
vi git-users.txt

git-users.txt

volkov = Volkov Andrey <email@mydomain.ru>
ivanov = Ivanov Ivan <ivan@mydomain.ru>

Ставим ruby, rubygems, git-svn

ubuntu:

sudo apt-get install git-core git-svn ruby rubygems

gentoo пакеты:

dev-vcs/git subversion perl
dev-vcs/subversion perl
dev-ruby/rubygems

Устанавливаем gem svn2git в домагнюю папку, чтобы не портить систему:

gem install -V --user-install --no-ri --no-rdoc --source http://gemcutter.org svn2git
export RUBYOPT=-rauto_gem

Конвертируем:

mkdir ~/svn.nolty.ru-git-converted/abackup
cd ~/svn.nolty.ru-git-converted/abackup
~/.gem/ruby/1.8/gems/svn2git-2.1.0/bin/svn2git https://svn.nolty.ru/abackup/ --authors ../git-users.txt -v

Смотрим, что получилось:

git branch -l
git tags -l

Складываем сконвертированный git репозиторий на сервер git.nolty.ru:

git remote add origin git@git.nolty.ru:abaсkup.git
git push --all
git push --tags

Обновлено Андрей Волков больше 12 лет назад · 3 изменени(я, ий)