假设我有一个名为branch foo的两个提交a,b:
a b c
------o-------o-------o------- # default
\ d e
----------o---------o # branch foo
Run Code Online (Sandbox Code Playgroud)
我想看到a和e之间的差异(不包括在内).我当然可以使用修订版ID,但这不太实用.在git中,可以做git diff master..foo.我怎样才能在hg中做同样的事情?
我正在努力养成进行代码审查的习惯,但合并一直使这个过程变得困难,因为我不知道如何让Mercurial"只显示合并引入的更改,而这些更改并非存在于其父级中".
或者,稍微更正式(感谢Steve Losh):
向我展示合并中的每一块都没有出现在它的任何一个父母身上,并告诉我其父母中任何一个不存在于3中的大块.
例如,假设我有一个包含两个文件a和b的存储库.如果在修订版1中更改了"a",则在修订版2(在单独的分支上)中更改"b",并且这两个更改在修订版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 …