“不是头条修改!”在Mercurial Hg

时间:2013-01-18 06:52:52

标签: version-control mercurial tortoisehg

我在一个小型组织工作,只有两个开发人员,我们使用Mercurial版本控制tortoisehg-2.2.2-hg-2.0.2-x86。我是mercurial的新手。

考虑programmerAprogrammerB

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

当我在programmerA机器中提取更改集时,它会创建一个新分支, 它还在工作目录和存储库中显示"Not a head revision!"错误。

programmerB中没问题。

请参阅下面的屏幕截图。

提前致谢。

Screen Shot 1 Screen Shot 2 Screen Shot 3

2 个答案:

答案 0 :(得分:55)

检查第一个屏幕截图,并在8+列中看到顶行显示Rev。这意味着您的工作副本基于修订版8.您可以按照该行关闭,并且还可以看到它在版本8处加入,这表示相同的事情。

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

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

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

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

您可以通过更改TortoiseHg中的设置自动发生update

  1. 选择文件>来自Workbench
  2. 设置
  3. 通过选择顶部的相应选项卡,选择要更改设置的位置。这些选择对用户来说是全局的,或者仅对于此存储库是
  4. 在左侧列表中选择工作台
  5. 在右侧部分,查找标有拉动操作后
  6. 的下拉列表
  7. 从列表中选择更新
  8. 每次执行拉动时都会更新到最新版本,这样可以避免第一次屏幕截图中的问题。当您和其他开发人员进行更改时,您仍然需要进行手动合并。

    该列表中的其他选项是rebasefetch,它们都依赖于启用的相应扩展程序,仅供高级用途使用。

答案 1 :(得分:32)

这是Mercurial完全正常和正确的行为。您的工作目录当前已更新为changeset 8“Merge 2”。 pull操作不会更改工作目录的内容。它只是缺少变更集并将它们添加到历史图表中。拉动之后你仍在使用变更集8.现在,“不是头部修订版”似乎警告你,如果你现在进行任何更改并提交它们,你将创建一个派生自版本8的新变更集,它将有效地创建一个新的分支。这是您可能想要或可能不想做的事情。通常在提取新的变更集之后,您需要将工作目录更新为最新的变更集,方法是右键单击最新的变更集并选择更新...

P.S。 您没有使用TortoiseHG的最新版本。请更新到最新版本。它包含许多改进并解决了许多错误。