合并不相关的存储库后推送分支

时间:2012-08-28 20:28:16

标签: mercurial push branching-and-merging

我已将两个存储库与mqextension合并在一起,为我提供了一个如下所示的存储库:

.. [a] --- [b] --- [c] --- [d]<- default branch
                  / 
       [x] --- [y] <- feature branch

问题在于,当我尝试推动这个时,我得到:

hg push --new-branch
abort: push creates new remote head x!
(did you forget to merge? use push -f to force)

我该如何解决这个问题?我假设我需要将[a]与[x]合并,以便我有一个共同的祖先。这可能吗?如果我强行推动,我会引起问题吗?

编辑 - 经过一番研究后,我发现我试图将存储库简化得太多了......存储库看起来像这样:

.. [a] --- [b] --- [c] --- [d]<- default branch
      \                   
       [f] --- [g] --- [z] <- integration branch
                      / 
           [x] --- [y] <- feature branch
          /
       [w] <- default branch from old repository.

我认为发生的事情是我有两个头用于默认分支,而hg并不想将它们都推到掌握状态。

我应该将两个默认值合并在一起吗?

1 个答案:

答案 0 :(得分:0)

没有理由合并两个不相关的存储库会导致此问题。我刚刚尝试过它并没有任何问题。

如果时间在图表中从左向右流动,那么您只有一个头[d]。在两个回购合并后,该图看起来像我期望的那样。

错误消息看起来像其他人已将更改推送到中央存储库,因此您需要hg pullhg merge将其更改合并到您的分支中。

编辑 - 编辑后添加更多信息,您似乎确实在默认分支上有两个头,是的,您应该将它们与hg merge合并。