Gerrit的gerrit query命令就是要查询Gerrit的changes数据库。
默认,查询结果是根据changes的更新时间,由近及远排序。
对于有多个patch set的change,默认查询结果只包含最后的patch set。
如果查询结果有很大,则默认只返回有限个查询结果,可以设置limit:参数指定查询结果包含的changes数量。
1. gerrit query命令用法:
1 | ssh -p <port> <host> gerrit query |
常见选项说明:
- –format=TEXT,默认
- –format=JSON
- –current-patch-set,给出当前patch set的信息
- –patch-sets,给出所有patch set的信息
- –commit-message,给出change的完整commit message
- –all-reviewers,给出所有reviewer的name和email
<query>
说明: - status:open等价于status:pending, is:open, is:pending
- owner:self等价于is:owner
- reviewer:self等价于is:reviewer
- project:bbauto/bba或p:bbauto/bba
- projects:bb
- branch:develop或branch:refs/heads/develop
- change:2311176或change:I03369813660369e983b56dcabe4cb48839be4de0
- commit:4e8ea8d43ab22273e4949348e1e7316f88cd54e3
- ref:refs/changes/76/2311176/1
- message:my_commit_message
- is:visible
- label:Code-Review=2或label:Code-Review=+2或label:Code-Review+2
- label:Verified+1 补充:
- 属性值除了bare words (数字、大小写字母和@-_.)之外,必须使用””或{}包含
- 多个属性之间默认为and关系,还有or关系,或者取反not/-
查询Gerrit指定状态的patch set,并保存到文件。采用分段查看首先查看最近500条的,再查看最近500-1000条的。
alias gerrit="ssh -p 29418 gerrit.yourdomain.com gerrit"
gerrit review <id> --abandon
放弃某个commit(id是commit id不是change id)
ssh -p 29418 192.168.1.127 gerrit review --submit a6b548272aa754857b4
提交某个commit
循环放弃脚本:
1 | #!/bin/bash |
2.参考文献:
https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.7/cmd-query.html https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.7/json.html https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.7/user-search.html
3.gerrit 不经代码审核直接push进库的方法
需求:
gerrit 代码审核将代码入库权限收起,可以有效控制代码质量.
但同时弊端也是明显的: 对于频繁改动的项目(比如新项目),每段代码都审核会明显拖慢工作效率.
这时可以给某个组配置不经审核直接push权限.
方法:
管理员账号,到 projects -> access 页面下配置 reference 权限. 其他 reference 的权限配置依旧, 给如下 reference 增加权限: refs/for/refs/heads/master 配置 submit 权限给某个具体的组即可.
该组用户需要忽略审核时,执行如下命令: git push origin HEAD:refs/for/master%submit 就是在原有 push 命令基础上加上 %submit 这个后缀即可.