Проект

Общее

Профиль

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>