我正在努力养成进行代码审查的习惯,但是合并使这个过程变得困难,因为我不知道如何要求 Mercurial“仅显示合并引入的更改,这些更改在其父级中都不存在”。
或者,稍微正式一点(感谢 Steve Losh):
显示合并中在其父项中不存在的每个块,并显示在其父项中存在但在 3 中也不存在的每个块。
例如,假设我有一个包含两个文件 a 和 b 的存储库。如果“a”在修订版 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
......但这不是我的问题 - 我的问题是弄清楚合并改变了什么。