2

我想为 Mercurial 编写一个钩子来执行以下操作,我正在努力开始。:

  • 在中央仓库上运行,并在推送变更集时执行(我认为我应该使用“输入”或“变更组”挂钩)
  • 在每个提交消息中搜索格式为“issue:[0-9]*”的字符串
  • 如果找到字符串,调用 Web 服务,并提供问题编号、提交消息和已更改的文件列表

那么,对于初学者来说,如何从“input”或“changegroup”钩子中获取每个提交的提交消息?除此之外,关于如何实现其他点的任何建议也将受到欢迎。

谢谢你的帮助。

4

2 回答 2

2

changegroup每次推送都会调用一次钩子。如果你想分析每个变更集,那么你需要incoming钩子(没有input钩子 AFAIK)——它将为每个变更集调用,ID 在HG_NODE环境变量中。hg log -r $HG_NODE --template '{desc}'您可以使用例如或通过 API获取提交消息。

于 2011-11-03T18:53:39.900 回答
2

您将需要使用incoming为存储库上应用的每个变更集调用的钩子(通过拉取、推送或解绑)。

在调用脚本中,id可以通过HG_NODE环境变量访问当前变更集,在 python 中,您可以使用os.environ['HG_NODE'].

根据您的操作方式,请查看提供的bugzilla 钩子作为起点。

于 2011-11-03T19:13:41.220 回答