如何从Mercurial Input或changesset钩子访问提交消息



我想为Mercurial写一个钩子来做以下事情,我正在努力去做:

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

那么,对于初学者来说,我如何从"input"或"changegroup"钩子中获取每次提交的提交消息?除此之外,如有任何关于如何实现其他要点的建议,也将不胜感激。

谢谢你的帮助

您将需要使用incoming钩子,该钩子会被应用于存储库上的每个更改集(通过拉,推或unbundle)调用。

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

根据你想怎么做,可以从提供的bugzilla钩子开始。

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

最新更新