我刚开始使用 hg Mercurial 存储库并陷入了多个 HEADS 的情况。我过去也将我的代码推送到存储库,但它也从当前代码中丢失。在我看来,每次其他人推送他的代码时,我的默认人数都会增加,但我在其他任何机器上都看不到这种行为。任何人都可以帮助它,我怎样才能摆脱这些头并且不失去我的推动力?
注意:我正在使用带有 eclipse mercurial 插件的 MAC OSX。
我刚开始使用 hg Mercurial 存储库并陷入了多个 HEADS 的情况。我过去也将我的代码推送到存储库,但它也从当前代码中丢失。在我看来,每次其他人推送他的代码时,我的默认人数都会增加,但我在其他任何机器上都看不到这种行为。任何人都可以帮助它,我怎样才能摆脱这些头并且不失去我的推动力?
注意:我正在使用带有 eclipse mercurial 插件的 MAC OSX。
据我现在了解您的问题,您正在推送到存储库,并且还有其他人使用相同的存储库。正确的?
对我来说,您似乎没有处理最新的提交,因此在您当前的分支上创建了多个头。此外请注意: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
根据头是否仅在本地(查看您的头/提交的阶段),您有更多(也许更优雅)选项,例如rebase。
一般来说,这是一个很好的开始/深入使用 Mercurial 的资源。
已经提供了一些很好的一般信息,但我将提供一些 MercurialEclipse 特定信息。