Mercurial Hg中的“不是一个修改版!

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

考虑programmerAprogrammerB

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

当我在programmerA台机器上拉变化集时,它创build一个新的分支,并且还显示"Not a head revision!" 工作目录和存储库中的错误。

programmerB问题。

请看下面的截图。

提前致谢。

屏幕截图1屏幕截图2屏幕截图3

检查第一个屏幕截图,看看最上面一行在Rev列中是8+ 。 这意味着您的工作副本基于修订版本8.您可以按照下面的说明进行操作,也可以看到在修订版本8中join了相同的内容。

有两种方法可以解决这个问题,这取决于你是否做了任何改变。

  • 如果你没有做任何修改,那么你可以右键点击修订版本13并select更新…。 更新到最新的变化。

  • 如果你已经做了修改,那么你需要提交这些修改,然后右键点击修订版本13,然后selectMerge with local … ,这个修改会引导一个向导来处理合并。

在你上一个截图中,你似乎没有得到一个工作副本,所以你需要使用上面的更新程序更新到版本13。

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

  1. WorkbenchselectFile > Settings
  2. select顶部的相应选项卡,select要更改设置的位置。 这些select对于用户来说是全局的,或者仅仅是这个存储库
  3. select左侧列表中的工作台
  4. 在右侧的部分中,查找标记为“ 拉动操作”的下拉列表
  5. 从列表中select更新

这将做一个最新的每次你做一个更新,这将避免在你的第一个截图的问题。 当您和其他开发人员进行更改时,您仍然需要手动合并。

该列表中的其他选项是重新rebasefetch ,这两个选项都依赖于启用的适当扩展,并且仅用于高级使用。

这是Mercurial的完全正常和正确的行为。 您的工作目录当前更新为更改集8“合并2”。 拉操作不会改变你的工作目录的内容。 它只是缺less变更集,并将其添加到您的历史图表。 在拉动之后,你仍然在处理变更集8.现在,“Not a head revision”出现警告你,如果你现在做了任何修改并提交它们,你将会创build一个从修订版8派生的新变更集,这将有效地创build新的分支。 这是你可能或不想要做的事情。 通常,在拉动新的变更集之后,通过右键单击最新的变更集并select“更新”,可以将工作目录更新为最新的变更集。

PS你没有使用TortoiseHG的最新版本。 请更新到最新版本。 它包含许多改进和解决许多错误。