首页 > 解决方案 > Gerrit 禁止推送空补丁集

问题描述

在较旧版本的 Gerrit 中,当尝试使用不同的 SHA 推送提交但没有更改时 - 因此提交消息没有更改,提交内容没有更改,其祖先也没有更改,您会收到类似的错误这个:

remote: (W) No changes between prior commit a5ff9c3 and new commit 014229a
To ssh://developer@gerritserver:29418/projectX
! [remote rejected] HEAD -> refs/for/master (no changes made)
error: failed to push some refs to 'ssh://developer@gerritserver:29418/projectX'

所以 Gerrit 不允许你推送一个空的补丁集。这是某些 2.X Gerrit 版本的行为。

现在使用 3.1.4 时只有警告:

remote: warning: no changes between prior commit c94b74a and new commit 19e07aa
remote: 
remote: SUCCESS

之后一切顺利。这意味着如果您进行挑选并推送到 Gerrit,您将创建一个空的补丁集,这不是我认为的良好行为。

有没有办法强制执行与以前的 Gerrit 版本相同的行为?我尝试Reject empty commit upon submit了项目设置中的配置,起初,我认为它可以工作,但这似乎不是更改的正确选项。

标签: gitgerrit

解决方案


理论上,此选项仅在合并更改时有效,但也许在推送提交时也有效(这是错误还是功能?)。

请参阅此处Gerrit 文档的“提交部分”中的“submit.rejectEmptyCommit”选项。


推荐阅读