0

有时,当我正在修复错误时,我想回到已知状态(提交)来检查某些内容。

我的工作目录包含更改,当我结帐到较旧的提交时,我不希望 mercurial 尝试合并更改。相反,我希望它只是中止结帐(迫使我搁置或丢弃)。

有没有办法解决这个问题,还是我需要编写自己的钩子?

4

2 回答 2

3

正确,您需要为此编写一个钩子。不过,这是一个简单的钩子:

[hooks]
preupdate = test -z "$(hg status --modified --added --removed --deleted)"

这调用hg status查找修改、添加、删除和删除的文件。如果找到,则测试返回非零退出代码,更新将停止。

于 2013-11-05T19:03:49.893 回答
1

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.

于 2013-11-06T09:54:03.377 回答