Gerrit系统仅由我们数人使用。 当有变更A的状态为"Submitted, Merge Pending"时, 它会在"open"页面的变更清单中出现。 我还注意到这个变更有一个依赖于另一个被废弃的变更B。
- 如何让A出现在"Merged"页面上?
- 如何让B消失,使得A不再依赖于B?
提供信息,当用户在同一页上按两次提交按钮时(她双击了提交按钮),我遇到了“Submitted,Merge Pending”的同样问题。这在Gerrit 2.11中发生。
日志中的错误如下:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '5173-2-1' for key 'PRIMARY'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
$ ssh -p 29418 admin@machine gerrit gsql
gerrit> delete from `patch_set_approvals` where change_id=5173 and patch_set_id=2;
gerrit> delete from `patch_set_ancestors` where change_id=5173 and patch_set_id=2;
gerrit> delete from `patch_sets` where change_id=5173 and patch_set_id=2;
用户 Gerrit Code Review 将其标记为集成。
在终端上执行以下命令:
其中n是从步骤2生成的提交列表中从顶部开始的提交计数。
现在在Gerrit上合并你的提交。
我曾经遇到过“已提交,合并待定”但没有任何依赖或冲突的问题。快速解决方法是查看所有打开的项目,看是否有其他处于“已提交,合并待定”状态的提交。如果有,就放弃它们。
然后执行git commit --amend -m "你原来的注释"和git push,这次你可以将修复合并。
伙计。 如果你的提交有一个标签,你可能会遇到一个 bug。这个 bug 已经在 Gerrit V2.7 中修复了。
Bug 参考: https://groups.google.com/forum/#!topic/repo-discuss/tLVMibfzroc
git tag x.y.z HEAD
git push -f origin x.y.z:master
所以最好推送一个分支,而不是直接提交到主分支。
git tag x.y.z HEAD
git push -f origin HEAD:master
这样Gerrit就能够再次合并我的待处理补丁。