将 Change-Id 添加到所有提交

sta*_*lar 5 git gerrit

我刚刚安装了 Gerrit,我想推动它,但是我收到了一个关于 的错误Change-Id,但它似乎在它抱怨的提交中。

$ git push gerrit HEAD:refs/publish/my-branch
Counting objects: 28, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (15/15), 4.46 KiB, done.
Total 15 (delta 12), reused 0 (delta 0)
remote: Resolving deltas: 100% (12/12)
remote: Processing changes: refs: 1, done    
remote: ERROR: missing Change-Id in commit message footer
remote: Suggestion for commit message:
remote: Revert "Refactoring controllers"
remote: 
remote: This reverts commit dd1c5c86b12461f61326fd102a11d9e3cb51142e.
remote: 
remote: Change-Id: Iaacf80a9e4f56b58d0b648112c3eb2413988f00e
remote: 
remote: Hint: To automatically insert Change-Id, install the hook:
remote:   gitdir=$(git rev-parse --git-dir); scp -p -P 29418 user@ci:hooks/commit-msg ${gitdir}/hooks/
remote: 
remote: 
To ssh://user@ci:29418/Project
! [remote rejected] HEAD -> refs/publish/my-branch (missing Change-Id in commit message footer)
error: failed to push some refs to 'ssh://user@ci:29418/Project'
Run Code Online (Sandbox Code Playgroud)

我认为这是因为之前没有提交,Change-Id因为它们是在使用钩子之前进行的。如何更新所有以前的提交以添加Change-Id?

HiB*_*HiB 1

在 Gerrit 中 - 在项目设置页面暂时禁用需要在提交中更改 ID 的选项。然后将现有提交推送到 Gerrit。

  • 否决这一点,没有权限更改 Gerrit,它由另一个团队拥有,并且考虑到官僚主义,这几乎是不可能的,再加上其他人不断添加到存储库中,这是一次性的事情。 (3认同)
  • 请注意,如果有人修改了这些提交并推回,它们将作为新更改打开;为了防止这种情况,必须手动将更改 ID 从 Gerrit UI 复制到提交消息。 (2认同)