Git Gerrit Change的状态为:已提交,合并待定,如何解决?

Git Gerrit Change的状态为:已提交,合并待定,如何解决?,git,gerrit,Git,Gerrit,Gerrit系统只供我们几个人使用。 一旦发生更改,其状态为:“已提交,合并挂起”。 “打开”网页中的更改列表。 我还注意到这个变更依赖于另一个变更B(状态为放弃) 如何在“合并”网页上创建列表 如何使B消失,使A不再依赖B 如果变更A依赖于B,则在合并B之前,A无法合并。由于您已放弃B,Gerrit不会自动合并A 您需要做的是修改A(可能使用git-rebase),使其不再依赖于B,然后将更改重新提交给Gerrit。Greg指出的是正确的,自动合并是不可能的。通过使用Gerrit的“cherr

Gerrit系统只供我们几个人使用。 一旦发生更改,其状态为:“已提交,合并挂起”。 “打开”网页中的更改列表。 我还注意到这个变更依赖于另一个变更B(状态为放弃)

  • 如何在“合并”网页上创建列表
  • 如何使B消失,使A不再依赖B

  • 如果变更A依赖于B,则在合并B之前,A无法合并。由于您已放弃B,Gerrit不会自动合并A


    您需要做的是修改A(可能使用
    git-rebase
    ),使其不再依赖于B,然后将更改重新提交给Gerrit。

    Greg指出的是正确的,自动合并是不可能的。通过使用Gerrit的“cherry pick”选项(本质上是手动合并),可以只合并一个。不幸的是,这不会删除Gerrit的“合并挂起”状态。如果投稿人不必麻烦重新设定基址,我通常会写一篇评论来说明这一点。

    盖伊。 如果您提交了一个标记,您可能会遇到一个bug。这个错误已经在Gerrit V2.7中修复

    错误参考:

    我遇到了同样的问题,即“提交,合并挂起”,没有任何依赖关系或冲突。快速修复方法是检查所有打开的项目,并查看是否有任何其他提交处于“提交,合并挂起”状态。如果是的话,就放弃它们吧


    然后git-commit--amend-m“您的原始评论”并再次使用git-push,这一次您可以合并您的修复程序。

    供参考。当用户在同一页面上两次按submit(她双击了submit按钮)时,我遇到了同样的问题“Submited,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)
    
    在提交之前,只有1次提交(代码更改)。但双重按下后有2次提交。第二个是新提交消息和“已提交,合并挂起”状态

    当我删除有关第二次提交的所有信息时:

    $ 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标记为集成。

    我面临这个问题,因为我将一个标记推到了分支名称:

    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就可以再次合并我挂起的补丁

  • 放弃你对Gerrit的推动
  • 在终端上:

  • 吉特日志
  • git复位头~n
  • 其中n是从步骤2在终端上生成的提交列表的顶部开始的提交计数

  • git添加
  • git commit-m“您的消息”
  • git推送

  • 现在将您的提交合并到Gerrit上。

    然后如何使B从网页中消失?您已经放弃了B。您还想用它做什么?@GregHewgill我认为他的意思是如何从Gerrit删除更改B条目,就好像它从未存在过一样(因此它不会显示在Gerrit web UI的任何地方)。我认为Gerrit Web UI不可能实现这一点,因为在放弃的更改项目上有一个
    恢复更改
    按钮,可以让您从放弃状态恢复更改。如果仍然想删除,可以从后端手动删除(尽管我从未尝试过)建议:尝试由待定提交所有者重新设置源/分支的基础。我已经询问并得到了更详细(对新手有用)的答案。