Gerrrit查询

  这是我在学习Gerrit的查询命令的时候看文献做的一些笔记,自己翻译了一下,以备后用。其中有些翻译的时候也是一知半解,如果错误希望指出。

Gerrrit查询

version v2.8.4-19-g4548330

NAME

gerrit query——查询修改数据库

SYNOPSIS(大纲)

'ssh' -p <port> <host> 'gerrit query'
  [--format {TEXT | JSON}]
 [--current-patch-set]
  [--patch-sets | --all-approvals]
  [--files]
  [--comments]
  [--commit-message]
  [--dependencies]
 [--submit-records]
  [--]
  <query>
  [limit:<n>]
  [resume_sortkey:<sortKey>]

DESCRIPTION(说明)

  查询存储修改的服务器,然后返回符合输入查询条件的描述变化的结果。最新被更新的修改会出现在旧的修改之前,在网页接口中也会以相同的顺序展示。对于每个符合要求的修改,返回的结果包含修改的最新补丁集数据,即使查询匹配到了一个旧的补丁集(比如一个旧的补丁集的sha1版本)。

  一次查询返回的结果的数量,可能被limit:操作符所限制。如果没有提供,那么会使用内部的默认值来防止结果集的爆炸。为了获得超出限制的结果集,可以使用resume_sortkey:操作符来重新对修改进行查询,而这个修改是符合上一次由先前结果集所得的修改。( To obtain results beyond the limit, the resume_sortkey: operator can be used to resume the query at the change that follows the last change of the prior result set.)

  这个命令的非选项参数是由空格连接的,并且之后会被作为一个查询解析。通过允许操作符出现在不同的参数中这种方式,简化了通过SSH的调用约定。查询操作符可以使用匹配的花括号(例如,reviewerin:{Developer Group})来引用值来回避2个水平上的shell引用问题(调用者shell调用了SSH,然后SSH命令行在服务器中解析)。

OPTIONS(可选参数)

—format

  针对结果的格式化方法。默认是TEXT,呈现为一个人们可读的展示。JSON返回修改属性,每一行是一个有着内嵌的逸出的LFs的匹配记录。

—current-patch-set

  包含关于目前在结果中的补丁集的信息。

—patch-sets

  包含所有关于补丁集的信息。如何和--current-patch-set标志联合使用,那么目前的补丁集信息将会被输出两次,在各自的领域里有一次。

—all-approvals

  包括所有的补丁集的信息以及每个补丁的批准信息集。如何和--current-patch-set标志联合使用,那么目前的补丁集信息将会被输出两次,在各自的领域里有一次。

—files

  支持列出文件补丁集和它们的属性(添加、修改、删除、重命名、复制)和大小信息(插入和删除的数量)的清单。注意,这个选项需要current-patch-set--patch-sets选项来提供文件的信息。

—comments

  包括了所有修改的评论。如果联合--patch-sets标志使用则所有的内联/文件评论都会被包含到各个补丁集中。

—commit-message

  包括完整的在修改描述中的提交消息。

—dependencies 

  显示关于被各个补丁集合依赖或需要的补丁集的信息。

—submit-records

  显示关于修改的提交记录信息,其中包含这些修改是否满足提交的规则(包含各个审查标签的信息)。

limit:(n)

  返回结果的最大数量。这实际上是一个查询操作符,而不是一个命令行选项。如果提供了超过一个limit:运算符,那么最小的那个将会被使用来限制结果集。

resume_sortkey:(sortKey)

  从这个排序键恢复结果。调用者需要传递最后一次先前结果集的修改的sortKey来重新执行先前的查询。这实际上是一个查询操作符,而不是一个命令行选项。

ACCESS(接入权限)

  任何拥有配置过的SSH公钥的用户。

SCRIPTING


  这个命令是为了在脚本中使用。

EXAMPLES(例子)

tools/gerrit项目中找到2个最近被打开的修改:

$ ssh -p 29418 review.example.com gerrit query --format=JSON status:open project:tools/gerrit limit:2
{"project":"tools/gerrit", ...}
{"project":"tools/gerrit", ..., sortKey:"000e6aee00003e26", ...}
{"type":"stats","rowCount":2,"runningTimeMilliseconds:15}

重新执行相同的查询并获得最终的结果:

$ ssh -p 29418 review.example.com gerrit query --format=JSON status:open project:tools/gerrit limit:2 resume_sortkey:000e6aee00003e26
{"project":"tools/gerrit", ...}
{"project":"tools/gerrit", ...}
{"type":"stats","rowCount":1,"runningTimeMilliseconds:15}

SCHEMA

  JSON信息包含了嵌套的结构,结构中包含了changepatchSetaccount,还有其他的一些符合要求的属性。注意,任何的字段都可能会在JSON中缺失,所以这些JSON流的用户必须恰当的对待这些数据。

SEE ALSO(推荐阅读)