Проект

Общее

Профиль

Svn-git » История » Версия 3

Андрей Волков, 2011-12-12 13:22

1 1 Андрей Волков
h1. Миграция SVN -> GIT
2
3
h2. Пример миграции:
4
5 3 Андрей Волков
Задача: мигрировать svn репозиторий https://svn.nolty.ru/abackup/ в git репозиторий git@git.nolty.ru:abackup.git
6 1 Андрей Волков
7
Находим список пользователей (коммитеров SVN):
8
<pre>
9
svn log https://svn.nolty.ru/abackup/ |grep '^r[0-9]\+ ' | cut -d ' ' -f3 | sort | uniq > ~/svn.nolty.ru-git-converted/git-users.txt
10
vi git-users.txt
11
</pre>
12 2 Андрей Волков
13
git-users.txt
14
<pre>
15
volkov = Volkov Andrey <email@mydomain.ru>
16 1 Андрей Волков
ivanov = Ivanov Ivan <ivan@mydomain.ru>
17 3 Андрей Волков
</pre>
18
19
Ставим ruby, rubygems, git-svn 
20
21
ubuntu:
22
<pre>
23
sudo apt-get install git-core git-svn ruby rubygems
24
</pre>
25
26
gentoo пакеты:
27
<pre>
28
dev-vcs/git subversion perl
29
dev-vcs/subversion perl
30
dev-ruby/rubygems
31
</pre>
32
33
Устанавливаем gem svn2git в домагнюю папку, чтобы не портить систему:
34
<pre>
35
gem install -V --user-install --no-ri --no-rdoc --source http://gemcutter.org svn2git
36
export RUBYOPT=-rauto_gem
37
</pre>
38
39
Конвертируем:
40
<pre>
41
mkdir ~/svn.nolty.ru-git-converted/abackup
42
cd ~/svn.nolty.ru-git-converted/abackup
43
~/.gem/ruby/1.8/gems/svn2git-2.1.0/bin/svn2git https://svn.nolty.ru/abackup/ --authors ../git-users.txt -v
44
</pre>
45
46
Смотрим, что получилось:
47
<pre>
48
git branch -l
49
git tags -l
50
</pre>
51
52
Складываем сконвертированный git репозиторий на сервер git.nolty.ru:
53
<pre>
54
git remote add origin git@git.nolty.ru:abaсkup.git
55
git push --all
56
git push --tags
57 2 Андрей Волков
</pre>