Ветки Git после миграции SVN

Я перенес проект своей группы из SVN в github, используя git-svn. История сохранилась правильно, но ветки SVN были зафиксированы в каталоге верхнего уровня мастера, а не в git-ветках. До слияния эти ветки были синхронизированы с «магистралью».

Таким образом, структура каталогов github выглядит так:

trunk/
branches/
        *branch1
        *branch2
        etc.

Я хотел бы переместить каждую из подпапок в папке ветки в отдельную ветку git, а затем удалить их из мастера. Но я не уверен, нужно ли мне создавать ветку отдельно, а затем объединять папку, а затем удалять папку? Или перебазировать с мастером?

Исходная команда, которую я использовал для миграции репозитория, была:

git svn clone --stdlayout --no-metadata --authors-file=users.txt svn://path/to/my/SVN

Но это все еще не дает правильных ветвей. Может ли кто-нибудь помочь мне с этой проблемой? Спасибо.


person cooper    schedule 09.02.2015    source источник


Ответы (1)


Используйте опцию -s/--stdlayout при выполнении git svn init или clone, например.

 git svn clone -s <path to the svn folder containing trunk and branches>

таким образом git-svn распознает ваш ствол как главный, а ваши ветки svn - как ветки git.

person Mykola Gurov    schedule 09.02.2015
comment
Привет! Спасибо за ваш ответ... команда, которую я использовал, была: git svn clone --stdlayout --no-metadata --authors-file=users.txt svn://hostname/path dest_dir-tmp Но это все равно не Работа. На данный момент я просто надеюсь работать с тем, что уже есть в git, и просто перемещать папки в ветки. Это возможно? - person cooper; 09.02.2015
comment
Если вам нравится красивая история, вы можете сделать так, чтобы git svn clone правильно импортировал ваш проект. В противном случае вы можете попробовать git subtree: git subtree split --prefix=branches/branch1 -b branch1 кажется близким к тому, что вам нужно , но, похоже, не сохраняет историю. - person Mykola Gurov; 10.02.2015