我正在尝试创建一个Mercurial钩子,当提交被推送到主存储库时运行。我创建了一个python脚本,如下所示:
# commit.py from mercurial import ui, hg from mercurial.i18n import gettext as _ def getV1ID(ui, repo, **kwargs): ui.write("The hook works!!!") v1id = ui.prompt('Enter the VersionOne ID') ui.write('VersionOne ID: '+v1id)
对于每个分支,commit.py
都是重复的,因为它包含在代码被推送到主存储库之前需要运行的机制。只有当这些预推机制通过时,推送才会成功。用户可以修改其本地提交.py因此,他们只运行这些预推送操作的子集,这取决于他们所从事的项目,而且每个人一次可以处理多个项目。因此,commit.py
不能是可以驻留在.hg
文件夹中的全局python脚本。在
要使mercurial在我的水星.ini文件(C:\Users\UserName\水星.ini),我添加了以下语句:
^{pr2}$如果我把python脚本放在.hg
文件夹中,它就会运行,但当我这样做时就不会运行了。有谁能帮我解释一下这个问题吗?非常感谢。在
我通过IRC为Mercurial得到了这个解决方案。正如我的一条注释中所述,钩子的脚本应该被指定为绝对路径,或者应该是PYTHONPATH中的python模块。因此,IRC上的}的固定脚本。具体操作如下:
pmezard
建议我应该有一个调用本地{在
mercurial.ini
中,钩住位于用户主目录.hg
目录中的“global”python脚本,如下所示:“global”python脚本
^{pr2}$commit.py
如下所示:然后,存储库目录中的
localcommit.py
由global
提交脚本运行,因此每个存储库都可以维护自己的自定义提交脚本。在相关问题 更多 >
编程相关推荐