2013-06-05 2 views
1

Я использую мост git svn и создал некоторые ветви, которые я объединил обратно в master, проблема в том, что сотрудник получает тот же репо с git-svn, что слияние не показано в его журнал.git svn показывает неверный граф слияния

git   svn 
------------------------- 
master  /trunk 
branch1  /branches/branch1 
branch2  /branches/branch2 

Ветви были основаны на 584 ..., несколько фиксаций к мастеру по fc80, 8f99, e0fd, 9df1, 536 после того, что некоторые testcommits к branch1 (989 ...) и branch2 (8b4. ..) были сделаны.

После этого я объединил ветвь 1 в master, commit id e1b. Я работал еще несколько раз, а затем объединил ветвь 2 в master, commit id 422.

Все слияние в порядке, хорошо выглядит до сих пор.

Теперь проблема: если другой разработчик извлекает изменения с помощью git-svn с сервера svn, ветви не показывают путь слияния.

Как я могу убедиться, что другие разработчики также знают, когда ветка была объединена с мастером?

Все нормально после слияния на моем компьютере: http://i.stack.imgur.com/HrRSn.png enter image description here

Войдите, показанного на другом компьютере после GIT-SVN выборки http://i.stack.imgur.com/jLhYV.png enter image description here

+0

Если вы оба работаете в git, есть ли причина, по которой вы делитесь через репозиторий subversion? – Useless

ответ

1

ГИТ-SVN не поддерживает слияние очень хорошо (читай : совсем не совсем). Это связано с тем, что когда он был спроектирован, SVN не имел возможности хранить информацию о слиянии вообще, поэтому слияние git-svn превращается в обычные коммиты при отправке их в SVN (или при обновлении из SVN).

Для возможного решения для будущих объединений ознакомьтесь с документацией опции --mergeinfo к dcommit в man-странице git-svn. Как поясняется в тексте, все еще есть проблемы даже с этим, и, вероятно, будет необходимо использовать опцию -p для git svn rebase, если у вас есть локальные слияния, которые еще не были выполнены.

Смежные вопросы