推送到 gerrit 期间提交消息页脚中缺少 Change-Id

missing Change-Id in commit message footer during push to gerrit

这是我的配置;

在服务器上:

os:Red Hat Enterprise Linux 服务器版本 6.7(圣地亚哥)

git 2.7.1

gerrit 2.12.2

在客户端上:

Rational Application Developer v9.0

Egit v4.2

Mylin 评论连接器:Gerrit v2.9

当我尝试将更改推送到 gerrit ("Push upstream") 时,它失败并显示缺少更改 ID 错误消息。

我进行了一些谷歌搜索,并在本地仓库的 .git/hooks 目录中安装了 commit-msg 挂钩。

更改 ID 存在于提交消息中,但之后(我猜是 mylin 客户端)添加了一堆注释。

请指教。提前致谢。

Change-Id 必须在页脚中(即提交消息的最后一行)。您应该使用

修复您的提交消息
git commit --amend

您应该将 Change-Id 移到末尾或删除所有不必要的内容,包括 change-id - 它应该在修改期间使用您安装的挂钩重新生成。


在 Gerrit 中有效的提交应该至少包含消息的第一行(主题)和页脚中的 Change-Id。来自 Change Ids docs:

To be picked up by Gerrit, a Change-Id line must be in the footer (last paragraph) of a commit message

即:

Improve foo widget by attaching a bar

Change-Id: Ic8aaa0728a43936cd4c6e1ed590e01ba8f0fbf5b

我认为如果提交消息仅包含更改 ID(无主题),则它是无效的。