通过提交消息添加评论者

By simon at 2018-02-28 • 0人收藏 • 90人看过

是否可以通过提交消息在Gerrit中添加审阅者?考虑这一点 提交消息:

component: make foo more bar

Foo was not bar enough, this change adds more bar to make foo fit better
in baz.

Change-Id: I4724e283214e0bfbb85a8e3d8db4971618e2609a
Cc: alice@example.com
Cc: bob@example.net
在这里,alice@example.com和推送时必须添加bob@example.net作为审阅者 到gerrit。 我知道一个[特别的分支 说明符(HTTPS:// stackoverflow.com/q/16658879/427545)来添加评论者,但是 想创建提交时想要更自动化一些东西。变化 是独立的,但如果我可以将他们分组在一个主题上,那将会很好 因为它们是相关的。

6 个回复 | 最后更新于 2018-02-28
2018-02-28   #1

其他方法很少。   1.将这些行添加到你的.git / config

[远程“审查”]

pushurl = ssh:// uSER @格里特:29418 /项目

push = HEAD:refs / for / master

receivepack = git receive-pack --reviewer reviewer1 --reviewer reviewer2 现在,当您想推出评论时,只需:* git push review *和 “reviewer1”和“reviewer2”将添加到您的patchset。   2.我认为你也可以编写一些脚本/钩子来自动执行此操作。提交后,只需grep的commi的Change-idt,并在下面的gerrit命令中使用它: ssh -p gerrit set-reviewers [--project(PROJECT)| -p(PROJECT)] [--add (REVIEWER)...| -a(REVIEWER)...] [ - ] {COMMIT | CHANGE-ID}

例如:ssh -p 29418 gerrit.example.com gerrit set-reviewers -a anuj@example.com Iac6b2ac2 我希望它能帮助你:)

2018-02-28   #2

无法设置每个提交审阅者,这些都是每次推送应用的 (见[gerrit的git-receive-pack手册](https:// gerriT- review.googlesource.com/Documentation/cmd-receive-pack.html))。代替 执行git push origin HEAD或git review(假设为origin是 gerrit远程,并且HEAD你想推的分支),就可以运行了 下面添加两个revie适用于所有新的提交:

git push origin HEAD:refs/for/master%r=alice@example.com,r=bob@example.com
这被应用于all提交,这不是你想要的。因为 以上限制s,让我们先改变工作流程,然后再推送更改 设置一些评论者。


由于Gerrit区分Cc(只发一封邮件 通知)和评论者(发送邮件,但也将用户标记为评论者), 我将修改提交m消息如下:

component: make foo more bar

Foo was not bar enough, this change adds more bar to make foo fit better
in baz.

R=alice@example.com
R=bob@example.net

Change-Id: I4724e283214e0bfbb85a8e3d8db4971618e2609a
给定一些提交,可以按照以下步骤单独添加 审查每个人承诺:   1.收集提交ID列表(或Change-Ids)。以主分支为基础的示例:
component: make foo more bar

Foo was not bar enough, this change adds more bar to make foo fit better
in baz.

R=alice@example.com
R=bob@example.net

Change-Id: I4724e283214e0bfbb85a8e3d8db4971618e2609a
402.对于每个提交ID,在提交消息中扫描R=...(审阅者)。给定提交的提交消息可以是发现与git show --no-patch --format=%b COMMIT_ID   3.如果评论者存在提交消息,请使用命令ssh -p 29418 user@host 'gerrit set-reviewers -a bob@example.net COMMIT_ID'(而不是999)来添加它们99999991420,您也可以使用Change-Id,例如I4724e283214e0bfbb85a8e3d8db4971618e2609a)。 执行上述步骤(一起与自动检测用户,主机和 端口设置),我写了一个Bash脚本: https://git.lekensteyn.nl/scripts/tree/git/gerrit-add-审阅 建议在您的回购中使用遥控器有.gitreview文件 这指向了一个Gerrit实例。该从那里执行~/scripts/gerrit-add-reviews origin/master.. git repo扫描提交消息并添加审阅者。

2018-02-28   #3

结合gerrit流事件和设置审阅者,你可以做到这一点。 实际上,你首先需要得到CL的状态(创建,更新&...), 然后 执行相应的操作,比如添加评论者,甚至提交CL。   1.从“[gerrit stream-events](https://review.openstack.org/Documentation/cmd-stream-events.html)“命令。   2.将JSON格式事件解析为每行。在JSON事件中,我们可以获得项目,分支,Change-Id,CL号码,提交的主题(不是整个提交)以及大量信息。 如果你真的需要整个提交信息,“[gerrit 查询](https://review.openstack.org/Documentation/cmd-query.html)“是有用的湖 过滤“patchset-created”,patchSet的数字是1(如果你只喜欢这样做 对于新的patchSet),解析提交的主题,并像你一样得到评论者 预定义。   3.使用“[gerrit set-reviewers](https://review.openstack.org/Documentation/cmd-set-reviewers.html)“命令,添加审阅者。 就像我的做法一样,使用python,这一切都很简单。 它的流动就像一个小詹金斯。

2018-02-28   #4

我把一个脚本放在一起,你可以通过它的电子邮件地址 你想添加的评论者,它会照顾水库对你来说。您可以 甚至在现有的提交者(电子邮件和名称)中发现模糊,所以你不知道 必须输入很多。 只需使用它即可:

$ greview [<rev1> [<rev2> [...]]]

2018-02-28   #5

将主分支上的更改发送到charlie@example.com:

git push ssh://review.example.com:29418/project HEAD:refs/for/master%r=charlie@example.com
发送评论,但用topi标记它们c名称'bug42':
git push ssh://review.example.com:29418/project HEAD:refs/for/master%r=charlie@example.com,topic=bug42
CC另外两方:
git push ssh://review.example.com:29418/project HEAD:refs/for/master%r=charlie@example.com,cc=alice@example.com,cc=bob@example.com
配置推送宏以执行最后一个操作:
git config remote.charlie.url ssh://review.example.com:29418/project
git config remote.charlie.push HEAD:refs/for/master%r=charlie@example.com,cc=alice@example.com,cc=bob@example.com
之后.git / config包含以下内容:
[remote "charlie"]
  url = ssh://review.example.com:29418/project
  push = HEAD:refs/for/master%r=charlie@example.com,cc=alice@example.com,cc=bob@example.com
现在发送一个新的改变,以查理,CC'ing两个爱丽丝和鲍勃 要容易得多:
git push charlie

2018-02-28   #6

以下解决方案有效 ssh -p gerrit set-reviewers [--project(PROJECT)| -p(PROJECT)] [--add (REVIEWER)... | -a(REVIEWER)...] [ - ] {提交| CHANGE-ID} 例如:ssh -p 29418 gerrit.example.com gerrit set-reviewers -a anuj@example.com Iac6b2ac2

登录后方可回帖

Loading...