更改默认gerrit commit-msg

时间:2016-06-29 03:32:52

标签: gerrit

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

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

4 个答案:

答案 0 :(得分:3)

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

以下是如何制作它。

  1. 使用Nginx或Apache设置文件服务器,并将自己的commit-msg挂钩放入该服务器。执行此操作后,您将获得该commit-msg挂钩
  2. 的URL
  3. 使用shell命令在Gerrit的配置文件gerrit.installCommitMsgHookCommand中配置名为gerrit.config的项目,该命令可以下载commit-msg挂钩
  4. 重新启动Gerrit服务器
  5. 例如,我的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,完成
    remote:错误:提交消息页脚中缺少Change-Id
    远程:
    remote:提示:要自动插入Change-Id,请安装钩子:
    remote:gitdir = $(git rev-parse --git-dir); wget -qO $ {gitdir} / hooks / commit-msg http://myservername/hooks/commit-msg; chmod a + x $ {gitdir} / hooks / commit-msg
    远程:然后修改提交:
    remote:git commit --amend

    通过阅读Gerrit文档中项目gerrit.installCommitMsgHookCommand的描述,您可以看到它的工作原理。

答案 1 :(得分:0)

不,没有。您需要开发自己的补丁集创建和草稿发布的挂钩,以便在$ GERRIT_SITE / hooks中使用。重要的是要记住,这些钩子需要创建一个新的补丁集(提交)来添加签名关闭信息。

答案 2 :(得分:0)

您可以在此位置找到commit-msg

gerrit.war
    WEB-INF/lib/gerrit-server-server.jar
        com/google/gerrit/server/tools/root/hooks/commit-msg

gerrit.warWEB-INF/lib/gerrit-server-server.jar是存档的,因此您必须解压缩并再次更改重新包装后

答案 3 :(得分:0)

在服务器端立即更改提交消息是一个非常糟糕的主意。考虑到SHA-1也是由提交消息组成的,因此,假设您只想在将更改提交给树时才添加Sign-off。您最终将获得不同的SHA-1,并且用户在提交中仍将具有先前的SHA-1 ...您知道我要去哪里吗?