【发布时间】:2012-06-14 21:18:28
【问题描述】:
我想确定存在于某些 Git 和 Mercurial 开源项目中的 criss cross merges 的数量,仅用于研究目的。关于如何完成此任务的任何建议?
如果合并有两个不同的共同祖先,则可以确定交叉合并。它正在为 Mercurial 开发一种新的合并策略,称为consensus merge,它将扩展祖先.ancestor() 代码以返回所有最大的共同祖先。我还没有找到这段新代码,但它会很有帮助。
我不太了解 Git,但它肯定有类似的东西。
【问题讨论】:
-
这是一个有趣的链接,但已经超过 6 年了...我想知道新/修订版本(具有更多 Hg/Git/Bzr 输入)会是什么样子...
-
您可能想将标题重命名为“3-way merge”,因为我以前从未听说过“交叉合并”……
-
@poke,阅读链接。 3路合并!=纵横交错合并。交叉合并是分支 A 合并分支 B 的变化,分支 B 合并分支 A 的变化。在 A->B 或 B->A 的稍后点使用 3-way 合并可能会导致合并过程中的错误。
-
@MarkTolonen 哦,对不起,刚读了第一句话,听起来是一样的。
-
Mercurial revsets 非常具有表现力。我相信你可以找到一种方法来识别这些与它们的合并。
hg help revsets.
标签: git mercurial merge git-merge