так что ваша ветка темы по-прежнему указывает на старые коммиты

я проблема с git-svn dcommits, из-за которой репозиторий git теряет информацию о том, какие коммиты какие.

Я стараюсь убедиться, что основная ветка в git всегда следует за стволом в репозитории SVN. Поэтому всякий раз, когда я работаю, я работаю над темой. Вот мой сценарий:

Некоторое время работаю в ветке тем

git checkout -b my-topic
git commit -m "blah blah blah"

Тогда я решаю, что хочу объединить свою ветку с мастером

git checkout master
git svn rebase #get any changes in svn
git rebase master my-topic
git merge my-topic --ff-only

До этого момента все прошло хорошо. Теперь у меня есть и master, и my-topic для ускорения и указания на один и тот же коммит, и вся история выглядит так:

A -- B -- C - master + my-topic

Тем не менее, когда я делаю

git svn dcommit

Я получаю дерево, которое выглядит следующим образом (B и C - коммиты, которые я изначально сделал для этой темы):

  -- B -- C - my-topic
 /
A -- B -- C - master + remotes/trunk

Похоже, что во время процесса dcommit git передает коммиты до SVN, а затем воспроизводит их обратно поверх master. Проблема, я думаю, в том, что они получают различную информацию о коммиттере. Я вхожу в SVN с черепаха Plink и ключ SSH.

Коммиты в репозитории git, которые не были отправлены в SVN, имеют информацию о коммиттере как:

Collin Hockey <[email protected]>

Коммиты, которые были отправлены в хранилище svn, имеют следующее:

chockey <chockey@6206317d-b652-48a9-a948-4036602fc523>

Можно ли как-то удержать эти ветви от расщепления? Я могу отчасти исправить это, сказав

git rebase master my-topic

еще раз, но я чувствую, что это не нужно. Основная проблема в том, что как только изменения ветки передаются в SVN, git больше не думает, что ветка где-то была объединена. Это сбивает с толку, чтобы удалить старые ветви, которые вам больше не нужны.

Ответы на вопрос(2)

Ваш ответ на вопрос