找到两个分支的最新合并点

dan*_*ann 23 mercurial branching-and-merging

有两个分支,我如何找到两个分支合并的最新版本?是否有标准的Mercurial命令来做到这一点?

这与如何在SVN中找到两个分支的共同祖先的问题相同,但对于Mercurial而不是颠覆.


我不明白为什么Lazy Badger的答案是对的,所以我不得不做一点画,现在我明白了:

当两个分支合并时,它们实际上并未"合并",但是来自一个分支的更改将集成到第二个分支中.这意味着合并提交仅属于原始分支,而不属于合并分支.这就是合并修订是祖先修订的两个孩子之一的原因.

这可能是最好看的图片:

default o----o----a---b---o---o
         \         \
other     `-o---o---m---o

ancestor(default,other) == a
children(ancestor(default,other)) == (b,m)
children(ancestor(default,other)) and merge() == m
Run Code Online (Sandbox Code Playgroud)

Laz*_*ger 19

hg log -r "children(ancestor(default, Cleanup)) and merge()" --template "{rev}\n"
Run Code Online (Sandbox Code Playgroud)

默认和清理分支的最新合并(Tim Henigan的答案的抛光版).

  • `hg help revsets`说:"祖先(单身,单身)"两个变化集中最伟大的共同祖先.为什么不合并? (2认同)
  • 它只是合并的一个*父*,但你问了最新的**mergeset**,是吗? (2认同)