我想更改默认的 Gerrit commit-msg 钩子(Hook)以自动添加 Signed-off-by。但是,我在 Gerrit 服务器中找不到文件 commit-msg,似乎 commit-msg 被包装在 gerrit.war 文件中。

有什么办法可以更改默认的 Gerrit commit-msg 钩子(Hook)吗?

最佳答案

还有另一种方法可以帮助您获得自己的 commit-msg Hook ,而不是 Gerrit 的默认 Hook 。
这个想法是提供另一个版本的钩子(Hook),然后让 Gerrit 提示 Shel 命令为你获取那个版本。

这是你可以做到的方法。

  • 使用 Nginx 或 Apache 设置文件服务器,并将您自己的 commit-msg Hook 放入该服务器。执行此操作后,您将获得该 commit-msg Hook
  • 的 URL
  • 在 Gerrit 的配置文件 gerrit.installCommitMsgHookCommand 中配置一个名为 gerrit.config 的项目,使用 shell 命令可以下载你的 commit-msg 钩子(Hook)
  • 重启 Gerrit 服务器

  • 例如,我的 Gerrit 服务器中 gerrit.installCommitMsgHookCommand 的值为:
    gitdir=$(git rev-parse --git-dir);wget -qO ${gitdir}/hooks/commit-msg http://myservername/hooks/commit-msg;chmod a+x ${gitdir}/hooks/commit-msg
    当我在提交消息中没有 Change-Id 行的情况下将提交推送到我的 Gerrit 服务器时,我将收到以下提示:

    远程:处理更改:引用:1,完成
    远程:错误:提交消息页脚中缺少更改 ID
    偏僻的:
    远程:提示:要自动插入 Change-Id,请安装钩子(Hook):
    远程:gitdir=$(git rev-parse --git-dir); wget -qO ${gitdir}/hooks/commit-msg http://myservername/hooks/commit-msg ; chmod a+x ${gitdir}/hooks/commit-msg
    远程:然后修改提交:
    远程:git commit --amend

    通过阅读 Gerrit 文档中 gerrit.installCommitMsgHookCommand 项的描述,您可以清楚地看到它是如何工作的。

    关于gerrit - 更改默认 gerrit commit-msg,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38089924/

    10-13 09:33