【问题标题】:"Not a head revision!" in Mercurial Hg“不是头部改版!”汞汞
【发布时间】:2013-01-01 20:42:36
【问题描述】:

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

考虑programmerAprogrammerB

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

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

programmerB 没问题。

请看下面的截图。

提前致谢。

【问题讨论】:

    标签: version-control mercurial tortoisehg


    【解决方案1】:

    检查第一个屏幕截图,看到最上面一行在Rev 列中显示8+。这意味着您的工作副本基于修订版 8。您可以沿着该行向下,还可以看到它在修订版 8 处加入,这表明相同的事情。

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

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

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

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

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

    1. Workbench 中选择文件 > 设置
    2. 通过选择顶部的相应选项卡来选择要更改设置的位置。选择对用户来说是全局的,或者只针对这个存储库
    3. 在左侧列表中选择Workbench
    4. 在右侧部分中,查找标有拉取操作后的下拉列表
    5. 从列表中选择更新

    这将在您每次拉取时更新到最新版本,这将避免您在第一个屏幕截图中出现的问题。当您和其他开发人员进行更改时,您仍然需要进行手动合并。

    该列表中的其他选项是rebasefetch,它们都依赖于启用的适当扩展并且仅供高级使用。

    【讨论】:

    • 如果您是 Mercurial 新手,我强烈建议您不要使用 Extensions。并且在您对 Mercurial 的基本功能更加熟悉之前,不要接触 rebase 和其他历史编辑插件。
    • 我同意,指点新手用户 rebase 和 fetch 是不好的建议,不会有帮助。
    • 我已经删除了那个信息
    • 使用 TortiseHg 3.0.1 版选择“同步”而不是“工作台”
    【解决方案2】:

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

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

    【讨论】:

    • 我喜欢这个答案,因为它非常直接并且解决了实际问题。
    猜你喜欢
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2018-04-26
    • 1970-01-01
    相关资源
    最近更新 更多