我想做一些像git commit --no-verify
这样的事情,但感谢mercurial。有什么办法吗?
答案 0 :(得分:5)
如hg help config
documentation中所述:
...通过在操作中附加后缀,可以为同一操作运行多个挂钩。 可以通过更改其值或将其设置为空字符串来覆盖站点范围的挂钩。可以通过添加"优先级的前缀来优先处理挂钩。"到新行的钩子名称并设置优先级。默认优先级为0。
(强调我的)。虽然这是指"系统范围的挂钩",但它也适用于存储库内挂钩:
$ sed -n '/hooks/,+1p' .hg/hgrc
[hooks]
pre-commit = ./foo.sh
$ cat foo.sh
#! /bin/sh
echo foo
exit 1
$ hg commit
foo
abort: pre-commit hook exited with status 1
显然我的预提交钩子正在工作。现在打败它:
$ hg --config hooks.pre-commit= commit
nothing changed
(没有任何提交;覆盖预提交挂钩工作)。
当然,您需要知道要覆盖哪些特定的挂钩,因为可能有多个预提交挂钩。