我刚开始使用hg Mercurial存储库并陷入多个HEADS的情况。我过去也将我的代码推送到存储库,但它也缺少当前代码。在我看来,每当有其他人推动他的代码,我的默认人数增加在我身边,但我没有在任何其他机器上看到这种行为。任何身体都可以帮助我摆脱这些头脑并且不会失去我的推力吗?
注意:我正在使用带有eclipse mercurial插件的MAC OSX。
答案 0 :(得分:3)
据我现在了解你的问题,你正在推送到存储库,还有其他人使用相同的存储库。正确的吗?
对我来说,似乎你没有处理最新的提交,因此在你当前的分支上创建了多个头。另请注意:Mercurial中的头部和分支之间存在一些差异。
我可以想象这样的事情发生在你身上(假设我们只在一个分支上工作):
您的工作副本:
1-2-3-4-5-6 (where number is revision)
所以你要r6
,例如两次提交7'
和8'
现在您的工作副本如下所示:
1-2-3-4-5-6-7'-8'
但与此同时,你所有的共享存储库都是这样的:
1-2-3-4-5-6-7-8-9-10 (so r10 is the 'latest' commit published)
现在,如果你要推送到共享存储库,就会发生这种情况:
7'-8'
/
1-2-3-4-5-6-7-8-9-10
瞧,现在有两个不同的头,名为8'
和10
。
对于未来,首先从共享存储库中提取并更新最新提交将阻止您解决此问题。
现在,正如您的问题是如何解决多个头,有不同的选项,最简单的就是进行简单的合并。
hg help merge
根据头部是否仅在本地(查看头部/提交的phase),您有更多(可能更优雅)选项,例如rebasing
一般来说,this是开始/深入Mercurial的好资源。
答案 1 :(得分:2)
已经给出了一些很好的一般信息,但我会给出一些MercurialEclipse特定信息。