我可以像git一样跳过mercurial pre-commit hooks吗?

时间:2016-08-18 11:09:57

标签: git mercurial hook pre-commit-hook pre-commit

我想做一些像git commit --no-verify这样的事情,但感谢mercurial。有什么办法吗?

1 个答案:

答案 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

(没有任何提交;覆盖预提交挂钩工作)。

当然,您需要知道要覆盖哪些特定的挂钩,因为可能有多个预提交挂钩。