Дисплей git diff в формате разрешения слияния - PullRequest
0 голосов
/ 24 марта 2020

Есть ли способ отформатировать git diff (например, git diff HEAD^ или git diff origin/foo origin/bar) в формате, используемом разрешением слияния?

Например, у меня есть патч, который (частично) выглядит как

   yield (
     api.test('check the foos') +  #
-    api.properties(foos=[]) +  #
     api.frobozz(bar) +  #
     ...
   )

И я хотел бы видеть этот раздел как

yield (
   api.test('check the foos') +  #
<<<<<<<<<<<<<<<<<<<<<< origin
   api.properties(foos=[]) +  #
=============================
>>>>>>>>>>>>>>>>>>>>>>>> HEAD
   api.frobozz(bar) +  #
   ...
)

1 Ответ

0 голосов
/ 24 марта 2020

Короткий ответ - нет: git diff сравнивает только два коммита, а git merge выполняет две разные git diff операции, а затем объединяет результаты этих двух различий Вот почему git merge имеет необходимую информацию.

Чтобы получить необходимую информацию, вам понадобится третий коммит: общая отправная точка для двух разных различий, которые вы сгенерируете, и затем объединить. Какова общая отправная точка для этих двух коммитов? Если вы можете найти или изготовить один, , тогда вы можете получить то, что вам нужно.

(Если вы просто хотите изготовить поддельный третий коммит, отредактировав вывод git diff, вы, конечно, можете написать программу для этого, но вы должны написать программу: Git не идет ни с чем.)

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