用手重复汞合金移植步骤

时间:2014-06-06 18:08:25

标签: mercurial mercurial-subrepos

最近我的一个同事嫁接了一个提交,改变了.hgsubstate中的一个(三个)子存储库。相反,移植物改变了所有三个以匹配原始变更集(即使它们是从前一个变更集):

changeset main:
f60c22f43d335e95a95301aee58a092b63800e4b external/a
26e615cf033cffa9fba77d2369e3802cc2b9a95e external/b
ca46ca7e5243439de09a2d14ffa60432c6c56d74 external/c             

diff of changeset grafted:
 7fe8fcdd7648e14bee5889a4b3155fde49f09de4 external/a
 5b90cf021b0006c8681247a73e9940f835a959f4 external/b
-8479ff0a18dc684db7f0771ace700915c51e92e6 external/c
+69e97bdab56155fee6ab4d0d21bbf36b34b040f8 external/c

final graft:
7fe8fcdd7648e14bee5889a4b3155fde49f09de4 external/a
5b90cf021b0006c8681247a73e9940f835a959f4 external/b
69e97bdab56155fee6ab4d0d21bbf36b34b040f8 external/c             

贪污似乎正在取代文件批发,而不仅仅是它的具体变化。这与我对移植应该做什么的直觉背道而驰。更糟糕的是,即使我使用-t internal,它也会这样做:失败它不会让我合并任何东西。

我至少想知道为什么不幸的合并正在发生,所以我们可以在将来避免它。我尝试在玩具示例中重现问题,但我失败了;因为大约有350个提交/合并将两个变更集分开,所以我很可能错过了有问题的部分。

我的问题是:我可以将mercurial输出用于执行此移植的步骤吗?或者以某种方式确定有问题的合并的来源?

1 个答案:

答案 0 :(得分:0)

移植操作是一种3向合并,它使用移植父卷修正作为基础。图中的其他任何内容都不重要。

来源:https://groups.google.com/forum/#!topic/mercurial_general/3pHTx8gT208

似乎我的问题出在其他地方,但我现在可以关闭这个问题了。