Сбой SVN в GIT при использовании svn2git - PullRequest
7 голосов
/ 27 марта 2012

Я пытаюсь перенести репозиторий из SVN в GIT, используя svn2git .Это проект с открытым исходным кодом, URL-адрес общедоступного хранилища SVN: http://svn.verinice.org/svnroot/. Не стесняйтесь проверять миграцию ...

Структура хранилища SVN:

  • ФИЛИАЛЫ
  • TAGS
  • TRUNK

Я использовал следующую команду для клонирования этого репо:

svn2git http://svn.verinice.org/svnroot 
  --trunk TRUNK 
  --branches BRANCHES 
  --tags TAGS

Но эта команда переносит только одну ветвь и неттеги на всех.Я использовал эти команды для проверки результата:

[user@forge git-repo]# git branch -a
* master
  springy
  remotes/springy
[user@forge git-repo]# git tag -l
[user@forge git-repo]# 

Как перенести все ветви и теги?Спасибо за вашу помощь!

ОБНОВЛЕНИЕ :

После использования параметра - авторы авторы-file.txt и добавление имени и адреса электронной почты в gitКонфигурация svn2git работает отлично:

 git config --global user.name "your name"
 git config --global user.email "your@email.com"

Вы должны добавить строку для каждого пользователя SVN в автор-файл.txt :

 svn-user-name = Full Name <email@address.com>

git branch -a и git tag -l теперь возвращает все ветви и теги.

Ответы [ 2 ]

10 голосов
/ 27 марта 2012

У меня нет опыта работы с svn2git, но вместо этого вы можете попробовать использовать git svn clone, чтобы переключиться на git.Обратите внимание, что это займет очень много времени.См. git help svn для получения дополнительной информации.

Обратите внимание, что это не создаст правильные теги в git, скорее всего из-за разницы в тегах git и svn, обсуждаемых в FAQ по svn2git.Вместо этого инструмент создаст ветви тегов.Если вы хотите превратить их в правильные теги (а я предполагаю, что вы вообще не вернетесь в SVN, это не должно причинить никакого вреда), здесь обсуждается о том, какнаписать сценарий, чтобы сделать это.

1 голос
/ 21 декабря 2012

Важно знать, что все эти инструменты основаны на собственной поддержке git SVN, git-svn. Таким образом, можно напрямую использовать git-svn для клонирования, извлечения наборов изменений и т. Д., Но лучше иметь один единственный скрипт / инструмент, который поможет нам выполнять все наши операции во время миграции, и, следовательно, потребность в таких инструментах.

Я использовал скрипт-обертку svn2git, размещенный на https://github.com/nirvdrum/svn2git, для подрывной деятельности по переносу git, и это помогло наверняка, особенно когда мы хотели периодически извлекать наборы изменений из нашего хранилища Subversion, поскольку мы не полностью отключали репозиторий Subversion. по понятным причинам. Чтобы узнать больше, вы можете пройти через скрипт оболочки ruby ​​,igration.rb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...