Gerrit从2.16.28升级到Gerrit3.9.9之后,下载代码(clone with commit-msg hook),执行git commit之后报错,git commit --mend也会有两个changeID,都删掉也还是会生成两个。
下载安装其他Gerrit版本,3.5以上都有这个问题,排查是commit-msg脚本不一样,对git 版本有要求,我们服务器是git 2.7.4,编译有要求,也不能升级git版本,于是采取换掉Gerrit自带的commit-msg 脚本。这个脚本是Gerrit war自带的服务放的脚本,如果要换就得改Gerrit源码,但是Gerrit也支持通过config来配置:
etc/gerrit.config
[gerrit]
installCommitMsgHookCommand = gitdir=$(git rev-parse --git-dir) && wget -qO ${gitdir}/hooks/commit-msg http://{放自己另外做的服务域名}/hooks/commit-msg && chmod a+x ${gitdir}/hooks/commit-msg
自己另外部署服务,可以通过wget 下载改地址即可。就可以将Gerrit原生commit-msg脚本换掉