【发布时间】:2019-10-07 07:37:30
【问题描述】:
在我正在进行的项目中,有一个标准的 mercurial 预提交钩子,看起来像这样:
python:hookhgext.messagevalidation.checkCommitMessage
我想知道 python 脚本的位置,这样我就可以创建自己的钩子脚本来调用它。
我如何找到这个文件的位置,或者从 python 脚本中调用这个钩子?
【问题讨论】:
在我正在进行的项目中,有一个标准的 mercurial 预提交钩子,看起来像这样:
python:hookhgext.messagevalidation.checkCommitMessage
我想知道 python 脚本的位置,这样我就可以创建自己的钩子脚本来调用它。
我如何找到这个文件的位置,或者从 python 脚本中调用这个钩子?
【问题讨论】:
根据docs
钩子的值必须以文本“python:”开头,然后继续 使用可调用对象的完全限定名称作为 钩子的价值。 … 只要您拥有正确的模块名称和 PYTHONPATH,它就应该 “只是工作”
即在您的情况下,Mercurial 导入 hookhgext.messagevalidation(从任何可能的导入位置)并从中调用 checkCommitMessage。
我对 Python 一无所知,但 对我来说 hookhgext.messagevalidation 是“hookhgext.py”中的“messagevalidation”something,而“hookhgext”是通常安装的 Python -module 在它的(已安装的模块)默认位置
【讨论】: