我已经通过
将草稿推向了gerritgit push ssh://myuser@gerrit.xxx.xx:29418/myproject HEAD:refs/drafts/master
但我需要在审核中更新它。
我看了https://review.openstack.org/Documentation/intro-quick.html#_reworking_the_change 但我认为这些建议并非专门针对草稿。
那么我可以只修改我的提交,然后使用与之前完全相同的命令推送它吗?审稿人会怎么样?
答案 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