2

我正在使用 Gerrit 代码审查。

我有一个问题。Gerrit 有一些钩子,其中之一是:

patchset-created --change <change id> --change-url <change url>
--project <project name> --branch <branch> --uploader <uploader>
--commit <sha1> --patchset <patchset id> 

如果您向 Gerrit 推送一些更改,Gerrit 会调用它。

传入的commit参数是sha1提交号,但我想要的是提交日志。例如,如果我这样做git commit -m "id:110",我想得到id:110.

我怎么才能得到它?有什么我可以使用的 API 吗?

4

2 回答 2

5

您可以使用 git log 或 git show,从正确的存储库中运行。您的钩子将通过 --repository 传递给 repo。该钩子将从一个有用的工作目录中调用(我上周刚刚检查过这个,我认为它在运行钩子之前进入了 repo?)

git log $SHA1git show $SHA1取决于您想要的信息。

也就是说,我更喜欢更好的解决方案。我正在寻找将差异/补丁集添加到信息中,并且它不能通过任何 gerrit 钩子获得。

于 2011-12-16T22:28:05.723 回答
-1

我自己解决了这个问题。似乎gerrit没有这样的api。但是,如果调用了patchset-created hook,它传入的change参数是有用的,如果引用gerrit数据库表的私钥,命名为Change,每次git push到gerrit它都会将这种更改记录到Change表中,包括提交消息,所以,你可以使用更改参数来查询表,所以从钩子中得到了提交消息!

于 2011-03-21T03:47:35.773 回答