четверг, 4 июля 2013 г.

Миграция svn в git - svn git migration

Клонирование стандартного репозитория (который содержит branches, tags и trunk):
  git svn clone -s --authors-file=/var/git-repo/svn-authors --svn-remote svn-repo http://192.168.0.127/repo/
Клонирование репозитория, который содержит в корне проект (можно в уже существующую локальную копию, полученную в предыдущей команде - получится в виде ветки)
  git svn clone --authors-file=/var/git-repo/svn-authors --svn-remote svn-svn http://192.168.0.127/svn/repo
После этого получем все ветки из полученного свн репозитория
  git fetch . refs/remotes/*:refs/heads/*
Создаем гит репозиторий и делаем его remote
  git init --bare /var/git-repo/<имя_гит_репозитория>.git
  git remote add origin /var/git-repo/<имя_гит_репозитория>.git
Указываем, что будем пушить все ветки в remote:
  git config remote.origin.push 'refs/remotes/*:refs/heads/*'
Устанавливаем ветку по умолчанию:
  git symbolic-ref HEAD refs/heads/git-svn
Переименовываем ее в master:
  git branch -m git-svn master
Пушим все:
  git push origin
Если ветки получились оторванными друг от друга (см. git log --graph --simplify-by-decoration --pretty=format:'%d' --all ), то читаем про git grafting

Комментариев нет:

Отправить комментарий