理想情况下,我想要回答标题问题。
但是,对于我的特定情况,我有一个Perl脚本,我想从precommit
钩子运行,我想知道是否调用了Mercurial并将-A
选项传递给了commit
命令(例如hg commit -A
),如果不是,是否有可能在那时“传递”它?
答案 0 :(得分:2)
这看起来有些愚蠢,但除了precommit
钩子之外,每个命令都有一个前XXXX(和后XXXX)钩子,它有一些不同的变量:
pre-<command>
在执行关联之前运行 命令。命令的内容 line作为$ HG_ARGS传递。解析 命令行参数作为传递 $ HG_PATS和$ HG_OPTS。这些包含 数据的字符串表示 内部传递给。 $ HG_OPTS是一个选项词典 (未指定的选项设置为他们的 默认值)。 $ HG_PATS是一个列表 参数。如果钩子返回 失败,命令不执行 和Mercurial返回失败 代码。
请改为使用pre-commit
挂钩并检查这些变量。