Mercurial在合并期间显示对2个父母或基地的差异

时间:2014-08-11 07:54:15

标签: merge mercurial dvcs merge-conflict-resolution

我们的teem最近面临合并,删除了一片合并,我们失去了"更改(就像您执行hg merge --tool internal:local)。

这是因为我们没有使用hg merge命令。

hg diff只显示了一个区别,而不是其他区别。

BASE --- HEAD1 --- MERGE
   \---- HEAD2 --/

假设在 HEAD1 中我合并 HEAD2 但尚未提交更改。

HEAD2 针对 MERGE 的差异我在hg diff看到了。它是-r BASE:HEAD2补丁。

如何在当前本地合并状态与 HEAD1 之间看到差异,就像我们从 HEAD2

合并一样

如何在当前本地合并状态与 BASE 之间看到差异?

1 个答案:

答案 0 :(得分:0)

感谢@Vince的建议。我重读了hg help diffhg help revset并得到了我想要的内容。

假设您在提交之前在 MERGE 并从 HEAD1 执行合并。

要比较 HEAD1 的差异,请使用以下其中一项:

hg diff
hg diff -r .
hg diff -r HEAD1

检查:

 hg log -r .

要比较 HEAD1 的差异,请使用以下其中一项:

hg diff -r HEAD2

如果当前分支中只有2个头,则可以在不使用 HEAD2 名称的情况下编写最后一个表达式:

hg diff -r 'branch(.) & head() - .'

检查:

hg log -r 'branch(.) & head() - .'

BASE 进行比较:

hg log -r 'ancestor(HEAD1, HEAD2)'

如果当前分支中只有2个头,则可以在没有 HEAD1 / HEAD2 名称的情况下编写最后一个表达式::

hg diff -r 'ancestor(branch(.) & head())'

检查:

hg log -r 'ancestor(branch(.) & head())'

如果当前合并的第二个父级有任何快捷方式,我会徘徊。首先 - 只是点号......

更新嗯...... p1()p2()真棒!我重写了我的例子,他们没有具体的名字 HEAD1 / HEAD2

hg diff -r 'p1()'
hg diff -r 'p2()'
hg diff -r 'ancestor(p1(), p2())'