Я портирую svn-репозиторий на git (используя svn2git из https://www.negativetwenty.net/redmine/projects/show/svn2git), и поскольку svn не отслеживает слияния, мне нужно вручную редактировать .git / info / grafts. Для этого я запускаю gitk, search для термина «Слияние» в сообщениях о коммитах убедитесь, что коммиты слияния имеют правильное происхождение и соответственно заполняют .git / info / grafts.
Проблема, с которой я столкнулся, заключается в том, что gitk, похоже, перепутали с веткой "master". Он часто показывает, что мастер «разветвляется» из ветви и сливается в послесловие ветви, хотя на самом деле все наоборот.
Почему он не может понять, что мастер должен быть "настолько линейным", насколько это возможно, и именно ветвь должна быть раздвоена от него, а не наоборот? Это проблема с gitk или история с git repo неполная? Кажется, "git log --pretty = oneline --graph" может показать правильное поведение, поэтому я думаю, что это может быть проблема с gitk.
Я также попробовал giggle и qgit, но у обоих есть свои проблемы. Я нахожу, что дерево хихика трудно понять (например, слияния горизонтальны, в то время как в qgit и gitk они наклонны ...) и qgit, кажется, не показывает некоторые коммиты (коммит, создающий ветку в svn, отображается как коммит git в "git log --pretty = oneline --graph" и gitk, но не в qgit и не хихикают).
Обратите внимание, что в своих тестах я использую "gitk --all".
Итак, мой вопрос:
-Как я могу заставить Гитка показать мастера как можно более линейным? Идеально «оправдано влево» с ответвлениями, а не наоборот. "git log --pretty = oneline --graph", кажется, делает это правильно, но как насчет gitk?
Спасибо!
Редактировать: ссылки на скриншоты неактивны. Ранее сказано:
Я загрузил скриншоты различных инструментов:
git log, gitk, хихикать, qgit
Посмотрите, как "git log" показывает ветку, сливающуюся в транк, в то время как gitk
показывает объединение ствола в ветке. Хихикать и qgit показывает право
объединить, но они часто отбрасывают некоторые коммиты (создавая ветки), так что это
очень трудно вручную редактировать файл .git / info / grafts.