【发布时间】:2013-11-05 15:06:01
【问题描述】:
有时当我在修复错误时,我想回到已知状态(提交)来检查某些内容。
我的工作目录包含更改,当我结帐到较旧的提交时,我不希望 mercurial 尝试合并更改。相反,我希望它只是中止结帐(迫使我搁置或丢弃) .
有没有办法解决这个问题,还是我需要自己写一个钩子?
【问题讨论】:
标签: mercurial
有时当我在修复错误时,我想回到已知状态(提交)来检查某些内容。
我的工作目录包含更改,当我结帐到较旧的提交时,我不希望 mercurial 尝试合并更改。相反,我希望它只是中止结帐(迫使我搁置或丢弃) .
有没有办法解决这个问题,还是我需要自己写一个钩子?
【问题讨论】:
标签: mercurial
正确,您需要为此编写一个钩子。不过,这是一个简单的钩子:
[hooks]
preupdate = test -z "$(hg status --modified --added --removed --deleted)"
这会调用hg status 来查找修改、添加、删除和删除的文件。如果找到,则测试返回非零退出代码,更新将停止。
【讨论】:
如果您在更新到修订版时使用检查开关,如果您有未提交的更改,它将中止。
hg update --check
abort: uncommitted local changes
我建议您始终输入 check 而不是使用简写 (-c),因为如果您不小心输入了 -C,它会很高兴地更新并丢弃您的更改。
【讨论】: