我在一个小型组织工作,只有两个开发人员,我们使用Mercurial版本控制tortoisehg-2.2.2-hg-2.0.2-x86
。我是mercurial的新手。
考虑programmerA
,programmerB
。
在programerA
机器中,我创建了一个名为"EFSL"
的存储库和客户端。
programmerB
只是名为"Uthaya Kumar"
的客户端,指向programmerA
计算机存储库。
当我在programmerA
机器中提取更改集时,它会创建一个新分支,
它还在工作目录和存储库中显示"Not a head revision!"
错误。
在programmerB
中没问题。
请参阅下面的屏幕截图。
提前致谢。
答案 0 :(得分:55)
检查第一个屏幕截图,并在8+
列中看到顶行显示Rev
。这意味着您的工作副本基于修订版8.您可以按照该行关闭,并且还可以看到它在版本8处加入,这表示相同的事情。
根据您是否进行了任何更改,有两种方法可以解决此问题。
如果您尚未进行任何更改,则可以右键单击修订版13并选择更新... 。更新到最新的更改。
如果您进行了更改,则需要提交这些更改,然后右键单击修订版13并选择与本地合并... ,这会打开一个向导来处理合并。
在您的上一个屏幕截图中,您似乎根本没有工作副本,因此您需要使用上面的更新程序更新到第13版。
您可以通过更改TortoiseHg中的设置自动发生update
:
Workbench
每次执行拉动时都会更新到最新版本,这样可以避免第一次屏幕截图中的问题。当您和其他开发人员进行更改时,您仍然需要进行手动合并。
该列表中的其他选项是rebase
和fetch
,它们都依赖于启用的相应扩展程序,仅供高级用途使用。
答案 1 :(得分:32)
这是Mercurial完全正常和正确的行为。您的工作目录当前已更新为changeset 8“Merge 2”。 pull操作不会更改工作目录的内容。它只是缺少变更集并将它们添加到历史图表中。拉动之后你仍在使用变更集8.现在,“不是头部修订版”似乎警告你,如果你现在进行任何更改并提交它们,你将创建一个派生自版本8的新变更集,它将有效地创建一个新的分支。这是您可能想要或可能不想做的事情。通常在提取新的变更集之后,您需要将工作目录更新为最新的变更集,方法是右键单击最新的变更集并选择更新...
P.S。 您没有使用TortoiseHG的最新版本。请更新到最新版本。它包含许多改进并解决了许多错误。