Gerrit不接受新创建的变更/分支

时间:2013-12-14 13:17:37

标签: git version-control gerrit

我刚刚创建了一个新的变化,我希望拉到Gerrit。我做了(我希望)通常的方式,即创建新的分支,做魔术,提交。现在,我想将更改推送到Gerrit。所以......

git checkout 82-changes-and-fixes-to-files-view
git push origin HEAD:refs/for/82-changes-and-fixes-to-files-view

(紧缩,紧缩)

! [remote rejected] HEAD -> refs/for/82-changes-and-fixes-to-files-view (branch 82-changes-and-fixes-to-files-view not found)
找不到分店?嗯......我想到了一些事情,文档说了一些关于在推送更改之前通过Gerrit UI,手动创建分支的事情。我对吗?无论如何,我正在这样做。我正在创建一个分支,通过用户界面,将其命名为82-changes-and-fixes-to-files-view以及相应的修订版,取自git status2b25fe7612f1563a78c9dc2d1574ae3dcfe9d5a1)。而且,再次......

git push origin HEAD:refs/for/82-changes-and-fixes-to-files-view

(crunch,cruch)

! [remote rejected] HEAD -> refs/for/82-changes-and-fixes-to-files-view (no new changes) 
Eee ......我错过了什么? Gerrit如何声称,没有任何变化,如果我实际上还没有推送任何代码(当然,没有这样的更改,当然,上面没有在Gerrit UI中打开合并更改?

1 个答案:

答案 0 :(得分:0)

此问题的解决方案是始终使用当前HEAD的最后一次提交ID ,而不是提交给您的分支的提交。使用分支的最后一次提交ID是错误的。为什么 - 这超出了我的想象。

所以,正确的道路是:

  1. 使用UI创建分支并提供HEAD的修订。
  2. 将更改(该分支)推送到Gerrit,不要忘记正确的引用。
  3. 访问页面,Gerrit根据您的推送向您提供的网址,并审核您的更改或等待其他人审核。
  4. 作为替代方案,您只需点击Create BranchInitial Revision字段为空,因此Gerrit会自动填充它。然后再次按Create Branch按钮。

    编辑: 这个答案只解释了做什么,让Gerrit接受了变更。它没有解释,为什么在以前的方法(解释中),Gerrit声称,没有变化并且不接受代码,而它实际上根本没有代码(对于那个特定的分支)。对我来说,这是一个巨大的错误,导致代码丢失。 (根据下面的评论不正确)