我在一个小组织工作,只有两个开发人员,我们使用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中,这是可以的。
请看下面的截图。
提前谢谢。



发布于 2013-01-18 16:45:35
检查第一个屏幕截图,可以看到顶行在Rev列中显示为8+。这意味着您的工作副本是基于修订版8的。您可以顺着这条线往下走,还可以看到它在修订版8处连接,这表示相同的事情。
有两种方法可以解决这个问题,这取决于您是否进行了任何更改。
在您的上一个屏幕截图中,您似乎根本没有工作副本,所以您需要使用上面的更新过程来更新到修订版13。
您可以通过更改TortoiseHg中的设置来自动执行update:
从要更改设置的Workbench
list之后查找标有的下拉列表
这会在你每次拉取的时候更新到最新版本,这样可以避免在你的第一个截图中出现问题。当您和另一个开发人员进行了更改时,您仍然必须进行手动合并。
该列表中的其他选项是rebase和fetch,这两个选项都依赖于启用的相应扩展,并且仅用于高级用途。
发布于 2013-01-18 16:52:05
这是Mercurial完全正常和正确的行为。您的工作目录当前已更新为变更集8“合并2”。拉入操作不会更改工作目录的内容。它只是获取丢失的变更集,并将它们添加到您的历史记录图中。在拉出之后,您仍然在处理变更集8。现在出现"Not a head revision“警告您,如果您现在进行任何更改并提交它们,您将创建一个派生自修订版8的新变更集,这将有效地创建一个新的分支。这是你可能想做或不想做的事情。通常,在拉取新的变更集之后,您希望将工作目录更新为最新的变更集,方法是右键单击最新的变更集,然后选择Update...
附注:您使用的不是最新版本的TortoiseHG。请更新到最新版本。它包含了许多改进并解决了许多错误。
https://stackoverflow.com/questions/14393833
复制相似问题