Version control &引用;不是头部修正&引用;汞

Version control &引用;不是头部修正&引用;汞,version-control,mercurial,tortoisehg,Version Control,Mercurial,Tortoisehg,我在一家小公司工作,只有两名开发人员,我们使用Mercurial版本控制tortoisehg-2.2.2-hg-2.0.2-x86。我不熟悉mercurial 考虑programmerA,programmerB 在programerA机器中,我创建了一个存储库和一个名为“EFSL”的客户端。 programmerB只是一个名为“Uthaya Kumar”指向programmerA机器存储库的客户端 当我在programmerA机器中提取更改集时,它会创建一个新分支, 它还显示了工作目录和存储库中

我在一家小公司工作,只有两名开发人员,我们使用Mercurial版本控制
tortoisehg-2.2.2-hg-2.0.2-x86
。我不熟悉mercurial

考虑
programmerA
programmerB

programerA
机器中,我创建了一个存储库和一个名为
“EFSL”
的客户端。
programmerB
只是一个名为“Uthaya Kumar”指向
programmerA
机器存储库的客户端

当我在
programmerA
机器中提取更改集时,它会创建一个新分支, 它还显示了工作目录和存储库中的
“非头部修订!”
错误

programmerB
中,一切正常

请参见下面的屏幕截图

提前谢谢


检查第一个屏幕截图,并查看顶部一行在
Rev
列中显示
8+
。这意味着您的工作副本基于第8版。您可以沿着这条线往下看,还可以看到它在第8版处连接,这表明了相同的事情

根据您是否进行了任何更改,有两种方法可以解决此问题

  • 如果您尚未进行任何更改,则右键单击修订版13并选择更新…。以更新到最新的更改

  • 如果您进行了更改,则需要提交这些更改,然后右键单击修订版13并选择与本地合并…,这将打开一个向导来处理合并

在上一个屏幕截图中,您似乎根本没有工作副本,因此您需要使用上面的更新过程更新到第13版

您可以通过更改TortoiseHg中的设置,自动进行
更新

  • 工作台
  • 通过选择顶部的相应选项卡,选择要更改设置的位置。这些选项对于用户来说是全局的,或者仅限于此存储库
  • 在左侧列表中选择Workbench
  • 在右侧部分中,查找标签为“拉动操作后的下拉列表”
  • 从列表中选择更新
  • 这将在您每次执行拉操作时更新到最新版本,这将避免在您的第一个屏幕截图中出现问题。当您和其他开发人员进行了更改时,您仍然需要手动合并


    该列表中的其他选项是
    重设基址
    获取
    ,这两个选项都依赖于启用的相应扩展,并且仅用于高级用途

    这是Mercurial完全正常和正确的行为。您的工作目录当前更新为变更集8“合并2”。拉操作不会更改工作目录的内容。它只是获取缺少的变更集,并将它们添加到历史图表中。拉动后,您仍在处理变更集8。现在,“非头部修订版”出现警告您,如果您现在进行任何更改并提交它们,您将创建一个从修订版8派生的新变更集,这将有效地创建一个新分支。这是你可能不想做的事情。通常,在拉取新变更集之后,您希望通过右键单击最新变更集并选择update

    附言。
    您使用的不是最新版本的乌龟。请更新至最新版本。它包含许多改进并解决了许多错误。

    如果您是Mercurial的新手,我强烈建议您不要使用扩展。在您更熟悉Mercurial的基本功能之前,请不要触摸rebase和其他历史编辑插件。我同意,让新手用户重新设置基础并获取是错误的建议,不会有任何帮助。我已经删除了这些信息,使用TortiseHg 3.0.1版选择“同步”而不是“工作台”我喜欢这个答案,因为它非常直接,解决了实际问题。