如果mercurial中的工作目录有变化,我该如何中止结账?

时间:2013-11-05 15:06:01

标签: mercurial

有时当我正在修复bug时,我想回到已知状态(commit)来检查一些东西。

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

是否可以选择解决此问题,还是需要编写自己的钩子?

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

如果您在更新版本时使用检查开关,则在您进行未经修改的更改时将中止检查。

hg update --check
abort: uncommitted local changes

我建议你总是输入支票而不是使用简写(-c),因为如果你不小心打字-C它会很高兴地更新并抛弃你的更改。