Svn-git » История » Редакция 3
Редакция 2 (Андрей Волков, 2011-12-12 11:16) → Редакция 3/4 (Андрей Волков, 2011-12-12 13:22)
h1. Миграция SVN -> GIT h2. Пример миграции: Задача: мигрировать svn репозиторий https://svn.nolty.ru/abackup/ в git локальный репозиторий git@git.nolty.ru:abackup.git git. Находим список пользователей (коммитеров SVN): <pre> 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 </pre> git-users.txt <pre> volkov = Volkov Andrey <email@mydomain.ru> ivanov = Ivanov Ivan <ivan@mydomain.ru> </pre> Ставим ruby, rubygems, git-svn ubuntu: <pre> sudo apt-get install git-core git-svn ruby rubygems </pre> gentoo пакеты: <pre> dev-vcs/git subversion perl dev-vcs/subversion perl dev-ruby/rubygems </pre> Устанавливаем gem svn2git в домагнюю папку, чтобы не портить систему: <pre> gem install -V --user-install --no-ri --no-rdoc --source http://gemcutter.org svn2git export RUBYOPT=-rauto_gem </pre> Конвертируем: <pre> 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 </pre> Смотрим, что получилось: <pre> git branch -l git tags -l </pre> Складываем сконвертированный git репозиторий на сервер git.nolty.ru: <pre> git remote add origin git@git.nolty.ru:abaсkup.git git push --all git push --tags </pre>