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

时间:2012-01-05 03:38:34

标签: git gerrit

Gerrit系统仅供我们几个人使用。 一旦有变更A,其状态为:“已提交,合并待定”。 “打开”网页中的更改列表。 此外,我注意到此更改依赖于另一个更改B(状态被放弃)。

  1. 如何在“合并”网页上列出A?
  2. 如何让B消失,所以A不再依赖B?

7 个答案:

答案 0 :(得分:22)

如果更改A对B具有依赖性,则在合并B之前不能合并A.由于您放弃了B,Gerrit不会自动合并A.

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

答案 1 :(得分:2)

FYI。我有同样的问题"已提交,合并等待"当用户在同一页面上按两次提交时(她双击提交按钮)。它发生在格里特2.11。

日志中的错误类似于

$ 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;

在提交之前,只有1次提交(代码更改)。但是在双击之后有2次提交。第二个是新的提交消息和"提交,合并等待"状态。

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

char c=0;
if(kbhit()) c = getch();
if(c== whatever code ctrl+d returns) x=EOF;

它标记为用户Gerrit Code Review集成。

答案 2 :(得分:1)

格雷格说的是正确的,自动合并是不可能的。可以通过使用Gerrit的“cherry pick”选项(基本上是手动合并)来合并A.不幸的是,这不会消除Gerrit的“Merge Pending”状态。如果贡献者不能为rebase而烦恼,我通常会对此效果发表评论。

答案 3 :(得分:0)

盖。 如果您提交了标记,则可能会遇到错误。此错误已在Gerrit V2.7中修复。

错误参考: https://groups.google.com/forum/#!topic/repo-discuss/tLVMibfzroc

答案 4 :(得分:0)

我遇到了“提交,合并等待”的问题,没有任何依赖或冲突。快速修复是遍历所有未清项目,并查看“已提交,合并待定”状态中是否存在任何其他提交。如果是的话,就放弃它们。

然后git commit --amend -m“你的原始评论”并再次git push,这次你可以合并你的修复。

答案 5 :(得分:0)

我遇到了这个问题,因为我将标签推送到分支名称:

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就可以再次合并我的待处理补丁。

答案 6 :(得分:0)

  1. 放弃Gerrit的推动。
  2. 在终端上:

    1. git log
    2. git reset HEAD~n
    3. 其中n是来自步骤2终端上生成的提交列表中顶部的提交计数

      1. git add。
      2. git commit -m"您的留言"
      3. git push
      4. 现在合并你对Gerrit的提交。