【问题标题】:missing Change-Id in commit message footer during push to gerrit在推送到 gerrit 期间,提交消息页脚中缺少 Change-Id
【发布时间】:2016-04-15 18:13:22
【问题描述】:

这是我的配置;

在服务器上:

操作系统:Red Hat Enterprise Linux Server 6.7 版(圣地亚哥)

git 2.7.1

格瑞特 2.12.2

在客户端:

Rational Application Developer v9.0

Egit v4.2

Mylin 评论连接器:Gerrit v2.9

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

我做了一些谷歌搜索,并在本地 repo 的 .git/hooks 目录中安装了 commit-msg 钩子。

提交消息中有更改ID,但之后(我猜是mylin客户端)添加了一堆cmets。

请指教。提前致谢。

【问题讨论】:

    标签: git gerrit


    【解决方案1】:

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

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

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


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

    要被 Gerrit 选中,Change-Id 行必须位于提交消息的页脚(最后一段)

    即:

    Improve foo widget by attaching a bar
    
    Change-Id: Ic8aaa0728a43936cd4c6e1ed590e01ba8f0fbf5b
    

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

    【讨论】:

    • 感谢您的留言。我做了“git commit --amend”并尝试在提交消息中只使用更改id行,然后从eclipse“Git Repositories”视图中“推送上游”,仍然得到相同的消息。还是我不使用命令行推送? eclipse egit/mylin“git staging”视图中有一个修改选项。我也尝试过,但无济于事。有没有办法更改自动生成的提交消息(即所有 cmets 等)
    • 问题已解决。除了 change id 行之外,它上面还需要另一行。感谢您的帮助。
    猜你喜欢
    • 2012-02-09
    • 1970-01-01
    • 2017-03-06
    • 2015-07-04
    • 1970-01-01
    • 2021-08-19
    • 2016-05-28
    相关资源
    最近更新 更多