如何在HEAD更新gerrit草案:refs / drafts / master?

时间:2015-11-17 12:07:56

标签: git gerrit

我已经通过

将草稿推向了gerrit
git push ssh://myuser@gerrit.xxx.xx:29418/myproject HEAD:refs/drafts/master 

但我需要在审核中更新它。

我看了https://review.openstack.org/Documentation/intro-quick.html#_reworking_the_change 但我认为这些建议并非专门针对草稿。

那么我可以只修改我的提交,然后使用与之前完全相同的命令推送它吗?审稿人会怎么样?

2 个答案:

答案 0 :(得分:2)

git push ssh://myuser@gerrit.xxx.xx:29418/myproject HEAD:refs/drafts/master

是的,上面提到的命令会将新的补丁集应用于草稿。

后续问题有点模糊。草稿的用例是您要上传您的更改但不能上传 可公开访问,例如因为你不希望别人开始 正在审查它。根据当地政策,审核人员可能会得到 明确添加或将获取打开的更改并将其自身添加为 评论者。但草稿功能可以防止这种情况发生。如果您确实希望有人审核您的草稿更改,您可以明确表示 将他/她添加为评论者。

有关详细信息,请参阅here

答案 1 :(得分:0)

由于这是一次痛苦的经历,这是我的笔记;希望他们有所帮助...

第一个问题:自从我推动选秀以来,分支已经移动了。我不得不合并更改,但我无法将新工作推送到refs/drafts/master,因为它们包括合并......

  ! [remote rejected] HEAD -> refs/drafts/master (you are not allowed to upload merges)

所以我尝试了来自https://wiki.opendaylight.org/view/GIT_Cheat_Sheet的建议,但是得到了同样的错误。 我了解到你通常可以在gerrit网页上使用rebase按钮但不是我的情况,因为我有冲突。我必须按https://gerrit-review.googlesource.com/Documentation/intro-user.html#rebase所述手动重新绑定。虽然该页面引用HEAD:refs/for/master,但我只是做了同样的事情,除了HEAD:refs/drafts/master和rebase工作。

接下来,我必须从我当地分支机构的gerrit中查看重新定位的更改(作为单个结帐两个补丁集)。然后我做了我的新更改,确保在提交消息中使用正确的Change-Id:,并再次推送此失败(消息类似于(you are not allowed to multiple drafts with same Change-Id:)。 要修复我必须git squash我的提交即。下载的更改+我的编辑。我推了这个,一切都很好。它出现在gerrit网页上作为3个补丁集。

最终我点击了发布按钮,我推测,推到HEAD:refs/for/master。重要的是要记住使用要在git历史记录中显示的文本更新组合的提交消息(在发布后不容易编辑)

另见https://gerrit-review.googlesource.com/Documentation/intro-user.html#submit