在命令行上从Mercurial仓库获取最新代码时,如果有需要合并的变更集,Mercurial会发出警告:
hg up
abort: crosses branches (merge branches or use --check to force update)
这就是我所期望的,并且从Mercurial的书中可以看出“Mercurial告诉我们hg update命令不会进行合并;当它认为我们可能想要进行合并时,它不会更新工作目录合并,除非我们强迫它这样做。“此时我知道我需要合并。
如何使用TortoiseHg获得相同的行为?当我点击“更新”时,它很高兴地将我更新为最新的变更集。有没有办法警告我可能需要合并? “始终合并(如果可能)”选项似乎仅在您有未提交的更改时才适用。
答案 0 :(得分:4)
您在命令行上从hg update
收到错误的原因是它不知道要选择哪个版本。有两个不同的默认头。
如果要执行hg update -r <specific rev>
,则命令完成且没有错误。
使用TortoiseHg时,请按以下方式更新:
Update...
这会转换为hg update -r <rev>
,因此没有错误。
使用TortoiseHg,您始终可以获得修订图。该图表显示新拉出的变更集何时创建新头。
答案 1 :(得分:1)
您看到的Mercurial中止正在发生,因为您在工作目录中有未完成的(即:未提交的)更改,正在尝试执行更新,并且Mercurial已决定您应该执行合并。
TortoiseHg也应警告你这一点,但它会以不同的方式这样做。它会产生一个对话框,询问您是否要放弃,合并或搁置您的未完成更改。这就是TortoiseHg v2.X.X中的样子,但在v1.1.X中它应该是类似的:
如果你在TortoiseHg中没有看到这个,你可能没有任何未完成的变化。再试一次 - 你看到了这些选择吗?