Mercurial - 合并叉子之间的变化

时间:2018-04-09 14:08:48

标签: merge mercurial repository tortoisehg

我遇到了一个问题,试图将来自父级的更改合并到我工作的分支中。这是一个更全面的描述:

存储库A.我将存储库B作为存储库A的分支启动.B是与A不同的应用程序,但共享许多内部后端功能,因此有一点至关重要的是能够应用两个应用程序共有的某些常见更新和错误修复。

所以B是开发的几个月,与A并行,当事情足够稳定以至于我决定从A开始对其进行更改。我将A添加为远程存储库,并从A&中提取并合并各种提交#39;主要分支为B.

到目前为止一切都很好。现在,应用程序B运行了我想要的所有更新功能。

我在本地将这些更新提交给B.当我尝试推送更新时出现问题。 Hg Workbench告诉我它正在中止,因为" push会创建新的远程分支"。它列出的分支是A的旧开发分支。它们已经合并到A中,并在A的开发过程中关闭。

正在发生的事情是,当我尝试推送B的更新版本时,它试图在B' s存储库中重新创建所有这些旧的A分支,我绝对不会这样做。我想做。

我是不是错了?我该如何将A中的变化拉到B中,然后将更改推送到B而不会在过程中将B更改?

1 个答案:

答案 0 :(得分:0)

您可能已将所有从存储库A中提取到存储库B.现在,当您推送到B时,它会将您现有的所有内容推送到B的远程副本,包括所有头你是从A中撤出的。

您只能推送某个版本,包括其所有祖先 hg push -rXXX其中XXX是您要推送的修订版。或者你可以推动某个分支。

但是:当您从A导入的anoter brach合并时,您也需要推送该分支,因为它是新变更集的祖先的一部分,因此您可能需要使用hg push --force无论如何,因为你可能有一个新的分支 - 取决于你合并的内容。

但是,您不需要推送完全不相关的变更集。