如果有两个分支,我该如何找到它们合并时最新的修订版本?是否有标准的Mercurial命令可以实现这一点?
这与问题如何在SVN中找到两个分支的共同祖先?相同,只不过是针对Mercurial而不是subversion。
我不明白为什么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
hg help revsets
说:“ancestor(single, single)” 是两个变更集的最近公共祖先。为什么不是合并呢? - daniel kullmann