使用TortoiseHg运行Update时强制关于跨越分支的警告

时间:2011-05-12 18:06:52

标签: mercurial tortoisehg

在命令行上从Mercurial仓库获取最新代码时,如果有需要合并的变更集,Mercurial会发出警告:

hg up
abort: crosses branches (merge branches or use --check to force update)

这就是我所期望的,并且从Mercurial的书中可以看出“Mercurial告诉我们hg update命令不会进行合并;当它认为我们可能想要进行合并时,它不会更新工作目录合并,除非我们强迫它这样做。“此时我知道我需要合并。

如何使用TortoiseHg获得相同的行为?当我点击“更新”时,它很高兴地将我更新为最新的变更集。有没有办法警告我可能需要合并? “始终合并(如果可能)”选项似乎仅在您有未提交的更改时才适用。

2 个答案:

答案 0 :(得分:4)

您在命令行上从hg update收到错误的原因是它不知道要选择哪个版本。有两个不同的默认头。

如果要执行hg update -r <specific rev>,则命令完成且没有错误。

使用TortoiseHg时,请按以下方式更新:

  1. 右键单击特定变更集
  2. 选择Update...
  3. 这会转换为hg update -r <rev>,因此没有错误。

    使用TortoiseHg,您始终可以获得修订图。该图表显示新拉出的变更集何时创建新头。

答案 1 :(得分:1)

您看到的Mercurial中止正在发生,因为您在工作目录中有未完成的(即:未提交的)更改,正在尝试执行更新,并且Mercurial已决定您应该执行合并。

TortoiseHg也应警告你这一点,但它会以不同的方式这样做。它会产生一个对话框,询问您是否要放弃合并搁置您的未完成更改。这就是TortoiseHg v2.X.X中的样子,但在v1.1.X中它应该是类似的:

enter image description here

如果你在TortoiseHg中没有看到这个,你可能没有任何未完成的变化。再试一次 - 你看到了这些选择吗?