Действия
Svn-git » История » Редакция 3
« Предыдущее |
Редакция 3/4
(Разница(diff))
| Следующее »
Андрей Волков, 2011-12-12 13:22
Миграция SVN -> GIT¶
Пример миграции:¶
Задача: мигрировать svn репозиторий https://svn.nolty.ru/abackup/ в git репозиторий git@git.nolty.ru: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
Обновлено Андрей Волков почти 13 года назад · 4 изменени(я, ий)