如何在 HEAD:refs/drafts/master 处更新 gerrit 草稿?
How to update a gerrit draft at HEAD:refs/drafts/master?
我已经通过
将草稿推送给了 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
但我认为该建议并非专门针对草稿。
那么我可以 git 修改我的提交,然后使用与之前完全相同的命令推送它吗?审稿人会是什么样子?
git push ssh://myuser@gerrit.xxx.xx:29418/myproject HEAD:refs/drafts/master
是的,上面提到的命令会将新的补丁集应用到草稿中。
后续问题有点模糊。草稿的用例是你想上传你的更改但没有成功
可公开访问,例如因为你不想让人们开始
审查它呢。根据当地政策,评论者可能会得到
明确添加或将选择打开的更改并将自己添加为
reviewers.But 草稿功能会阻止 this.If 如果您确实希望有人审核您的草稿更改,您可以明确
添加 him/her 作为审阅者。
参考here了解更多详情
由于这是一次痛苦的经历,所以这是我的笔记;希望他们能有所帮助...
第一个问题:自从我推送我的草稿后,分支已经移动了。我不得不合并更改,但我无法将新工作推送到 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
我已经通过
将草稿推送给了 gerritgit push ssh://myuser@gerrit.xxx.xx:29418/myproject HEAD:refs/drafts/master
但我需要在审核中更新它。
我读了https://review.openstack.org/Documentation/intro-quick.html#_reworking_the_change 但我认为该建议并非专门针对草稿。
那么我可以 git 修改我的提交,然后使用与之前完全相同的命令推送它吗?审稿人会是什么样子?
git push ssh://myuser@gerrit.xxx.xx:29418/myproject HEAD:refs/drafts/master
是的,上面提到的命令会将新的补丁集应用到草稿中。
后续问题有点模糊。草稿的用例是你想上传你的更改但没有成功 可公开访问,例如因为你不想让人们开始 审查它呢。根据当地政策,评论者可能会得到 明确添加或将选择打开的更改并将自己添加为 reviewers.But 草稿功能会阻止 this.If 如果您确实希望有人审核您的草稿更改,您可以明确 添加 him/her 作为审阅者。
参考here了解更多详情
由于这是一次痛苦的经历,所以这是我的笔记;希望他们能有所帮助...
第一个问题:自从我推送我的草稿后,分支已经移动了。我不得不合并更改,但我无法将新工作推送到 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