Я пытаюсь привыкнуть к проверке кода, но слияния затрудняют процесс, потому что я не знаю, как попросить Mercurial «показать только изменения, внесенные слиянием, которых не было ни в одном из них». его родителей. "
Или, более формально (спасибо Стиву Лошу):
Покажите мне каждый кусок в слиянии, которого не было ни у одного из его родителей, и покажите мне каждый кусок, присутствующий у одного из его родителей, которого также нет в 3.
Например, предположим, что у меня есть хранилище с двумя файлами, a и b. Если «а» изменяется в ревизии 1, «b» изменяется в ревизии 2 (которая находится в отдельной ветви), и эти два изменения объединяются в ревизии 3, я получу историю, которая выглядит следующим образом:
@ changeset: 3
|\ summary: Merged.
| |
| o changeset: 2
| | summary: Changing b
| |
o | changeset: 1
|/ summary: Changing a
|
o changeset: 0
summary: Adding a and b
Но если я попрошу увидеть изменения, внесенные в редакции 3, hg di -c 3
, Mercurial покажет мне то же самое, что и если бы я попросил просмотреть изменения, внесенные в редакцию 1, hg di -c 1
:
$ hg di -c 3
--- a/a
+++ b/a
@@ -1,1 +1,1 @@
-a
+Change to a
$ hg di -c 1
--- a/a
+++ b/a
@@ -1,1 +1,1 @@
-a
+Change to a
Но, очевидно, это не очень полезно - вместо этого я хотел бы сказать, что в редакцию 3 не было внесено никаких новых изменений (или, если во время слияния возник конфликт, я хотел бы видеть только разрешение этого конфликта). Что-то вроде:
$ hg di -c 3
$
Итак, как я могу это сделать?
ps : я знаю, что могу уменьшить количество слияний в моем хранилище, используя rebase
... Но это не моя проблема - моя проблема - выяснить, что было изменено слиянием.