"不是头条修改!" 在Mercurial Hg

Uth*_*hay 48 version-control mercurial tortoisehg

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

考虑programmerA,programmerB.

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

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

programmerB它很好.

请参阅下面的屏幕截图.

提前致谢.

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

Ste*_*aye 56

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

有两种方法可以解决这个问题,具体取决于您是否进行了任何更改.

  • 如果你还没有进行任何更改,那么你会用鼠标右键单击版本13和选择更新....更新到最新的更改.

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

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

您可以update通过更改TortoiseHg中的设置自动执行此操作:

  1. 从中选择文件 > 设置Workbench
  2. 通过选择顶部的相应选项卡,选择要更改设置的位置.这些选择对用户来说是全局的,或者只是对于此存储库
  3. 在左侧列表中选择Workbench
  4. 在右侧部分中,查找标记为After Pull Operation的下拉列表
  5. 从列表中选择更新

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

该列表中的其他选项是rebase,fetch它们都依赖于启用的适当扩展,仅供高级用途使用.

  • 如果您是Mercurial的新手,我强烈建议您不要去扩展.在您更熟悉Mercurial的基本功能之前,请不要触摸rebase和其他历史编辑插件. (7认同)
  • 使用TortiseHg 3.0.1版选择"Sync"而不是"Workbench" (3认同)

Eiv*_*ver 32

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

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

  • 我喜欢这个答案,因为它非常直接并解决了实际问题. (3认同)