在合并过程中,Mercurial对2个父母或基地的展示差异 [英] Mercurial show diff against 2 parents or base during merge
问题描述
我们最近面临的合并问题是删除合并的一片叶子,而我们丢失"更改(就像您执行hg merge --tool internal:local
一样).
Our teem recently faced with merge that removes one leaf of merge and we "lost" changes (as if you perform hg merge --tool internal:local
).
发生这种情况是因为我们对hg merge
命令没有经验.
This happen because we don't experienced with hg merge
command.
hg diff
仅显示一个差异,而没有其他差异.
hg diff
shown only one difference, but not other.
BASE --- HEAD1 --- MERGE
\---- HEAD2 --/
假设在 HEAD1 中,我合并了 HEAD2 ,但尚未提交更改.
Suppose in HEAD1 I merge HEAD2 but has not yet commit changes.
HEAD2 与 MERGE 的区别.这是-r BASE:HEAD2
补丁.
HEAD2 diff against MERGE I see by hg diff
. It is -r BASE:HEAD2
patch.
我怎么能看到与 HEAD1 的当前本地合并状态之间的区别,就好像我们是从 HEAD2
How can I see diff between current local merge state with HEAD1 as if we merge from HEAD2
如何查看与 BASE 的当前本地合并状态之间的区别?
How can I see diff between current local merge state with BASE?
推荐答案
感谢@Vince的建议.我重读了hg help diff
和hg help revset
并得到了我想要的.
Thanks @Vince for suggestion. I reread hg help diff
and hg help revset
and get that I want.
假设您在提交之前执行 MERGE ,并从 HEAD1 执行合并.
Assume that you at MERGE before commit and perform merge from HEAD1.
要比较diff与 HEAD1 ,请使用以下其中一项:
To compare diff against HEAD1 use one of:
hg diff
hg diff -r .
hg diff -r HEAD1
检查:
hg log -r .
要比较diff与 HEAD1 ,请使用以下其中一项:
To compare diff against HEAD1 use one of:
hg diff -r HEAD2
如果当前分支中只有2个头,则可以不使用 HEAD2 名称编写最后一个表达式:
If you have only 2 heads in current branch last expression can be written without HEAD2 name:
hg diff -r 'branch(.) & head() - .'
检查:
hg log -r 'branch(.) & head() - .'
与 BASE 进行比较:
hg log -r 'ancestor(HEAD1, HEAD2)'
如果当前分支中只有2个头,则可以不使用 HEAD1 / HEAD2 名称编写最后一个表达式::
If you have only 2 heads in current branch last expression can be written without HEAD1/HEAD2 names::
hg diff -r 'ancestor(branch(.) & head())'
检查:
hg log -r 'ancestor(branch(.) & head())'
如果当前合并的第二个父级有快捷方式,我会徘徊.首先-只是点符号...
I wander if there are any shortcut for second parent of current merge. For first - just dot sign...
更新嗯... p1()
和p2()
太棒了!我以没有具体名称 HEAD1 / HEAD2 :
UPDATE Hm... p1()
and p2()
are awesome! I rewrote my examples in way that they have no concrete names HEAD1/HEAD2:
hg diff -r 'p1()'
hg diff -r 'p2()'
hg diff -r 'ancestor(p1(), p2())'
这篇关于在合并过程中,Mercurial对2个父母或基地的展示差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!