如何判断Mercurial命令是否通过外部钩子传递了一个选项?

时间:2010-10-04 16:50:34

标签: mercurial

理想情况下,我想要回答标题问题。

但是,对于我的特定情况,我有一个Perl脚本,我想从precommit钩子运行,我想知道是否调用了Mercurial并将-A选项传递给了commit命令(例如hg commit -A),如果不是,是否有可能在那时“传递”它?

1 个答案:

答案 0 :(得分:2)

这看起来有些愚蠢,但除了precommit钩子之外,每个命令都有一个前XXXX(和后XXXX)钩子,它有一些不同的变量:

  

pre-<command>

     

在执行关联之前运行   命令。命令的内容   line作为$ HG_ARGS传递。解析   命令行参数作为传递   $ HG_PATS和$ HG_OPTS。这些包含   数据的字符串表示   内部传递给。   $ HG_OPTS是一个选项词典   (未指定的选项设置为他们的   默认值)。 $ HG_PATS是一个列表   参数。如果钩子返回   失败,命令不执行   和Mercurial返回失败   代码。

请改为使用pre-commit挂钩并检查这些变量。