Сначала сделайте резервную копию (или две) вашего svn-хранилища.
Затем установите svn2git .В MacOS:
brew install ruby
gem install svn2git
или в Debian:
sudo apt-get install git-core git-svn ruby
sudo gem install svn2git
Затем (необязательно, но рекомендуется) перечислите всех авторов в репозитории svn:
svn log --quiet \
| grep -E "r[0-9]+ \| .+ \|" \
| cut -d'|' -f2 \
| sed 's/ //g' \
| sort \
| uniq
и создайте файл hors.txt , чтобы сопоставить авторов SVN с учетными записями, которые вы хотите использовать в git.
Выполнить svn2git
:
mkdir new-git-repos
cd new-git-repos
svn2git path-to-svn-repos --no-minimize-url --authors path-to-authors.txt
Проверьтеновый репозиторий git (git log
, git tag
, git branch -a
и т. д.), переименуйте ветви и теги, если необходимо, и при необходимости отправьте новые репозитории на сервер.
См. svn2git README.md для большего количества рецептов.Используйте svnadmin , если у вас есть доступ к главному репозиторию svn, и вам необходимо применить более сложные перезаписи истории фиксации перед преобразованием в git.