有时,当我正在修复错误时,我想回到已知状态(提交)来检查某些内容。
我的工作目录包含更改,当我结帐到较旧的提交时,我不希望 mercurial 尝试合并更改。相反,我希望它只是中止结帐(迫使我搁置或丢弃)。
有没有办法解决这个问题,还是我需要编写自己的钩子?
有时,当我正在修复错误时,我想回到已知状态(提交)来检查某些内容。
我的工作目录包含更改,当我结帐到较旧的提交时,我不希望 mercurial 尝试合并更改。相反,我希望它只是中止结帐(迫使我搁置或丢弃)。
有没有办法解决这个问题,还是我需要编写自己的钩子?
正确,您需要为此编写一个钩子。不过,这是一个简单的钩子:
[hooks]
preupdate = test -z "$(hg status --modified --added --removed --deleted)"
这调用hg status
查找修改、添加、删除和删除的文件。如果找到,则测试返回非零退出代码,更新将停止。
If you use the check switch when updating to a revision, it will abort if you have uncommited changes.
hg update --check
abort: uncommitted local changes
I'd advise you to always type out check rather than using the shorthand (-c), since if you accidentally type -C it'll happily update and throw out your changes.