我想为 Mercurial 编写一个钩子来执行以下操作,我正在努力开始。:
- 在中央仓库上运行,并在推送变更集时执行(我认为我应该使用“输入”或“变更组”挂钩)
- 在每个提交消息中搜索格式为“issue:[0-9]*”的字符串
- 如果找到字符串,调用 Web 服务,并提供问题编号、提交消息和已更改的文件列表
那么,对于初学者来说,如何从“input”或“changegroup”钩子中获取每个提交的提交消息?除此之外,关于如何实现其他点的任何建议也将受到欢迎。
谢谢你的帮助。
我想为 Mercurial 编写一个钩子来执行以下操作,我正在努力开始。:
那么,对于初学者来说,如何从“input”或“changegroup”钩子中获取每个提交的提交消息?除此之外,关于如何实现其他点的任何建议也将受到欢迎。
谢谢你的帮助。
changegroup
每次推送都会调用一次钩子。如果你想分析每个变更集,那么你需要incoming
钩子(没有input
钩子 AFAIK)——它将为每个变更集调用,ID 在HG_NODE
环境变量中。hg log -r $HG_NODE --template '{desc}'
您可以使用例如或通过 API获取提交消息。
您将需要使用incoming
为存储库上应用的每个变更集调用的钩子(通过拉取、推送或解绑)。
在调用脚本中,id
可以通过HG_NODE
环境变量访问当前变更集,在 python 中,您可以使用os.environ['HG_NODE']
.
根据您的操作方式,请查看提供的bugzilla 钩子作为起点。