gerrit 作为 code review使用不算难,然鹅,总有一些内容知其然不知其所以然,这里稍作研究和记录。
1. refs/for 和 refs/heads
向gerrit服务器提交代码命令:
$git push origin HEAD:refs/for/mybranch
refs/for/mybranch需要经过code review之后才可以提交;
refs/heads/mybranch不需要code review。
2.refs/for 和 refs/changes向refs/for/<branch-name>命名空间下推送提交并不会在其中创建引用,而是为新的提交分配一个ID,称为review-id,并为该review-id的访问建立如下格式的引用refs/changes/nn/<review-id>/m,其中:
review-id是 Gerrit为评审任务顺序而分配的全局唯一的号码。
nn为review-id的后两位数,位数不足用零补齐。即nn为review-id除以100的余数。
m为修订号,该review-id的首次提交修订号为1,如果该修订被打回,重新提交修订号会自增。
Gerrit server上的project 下的refs目录内容:
$ ls refs/
changes heads meta notes tags users
$ ls refs/changes/
02 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 60
查看review-id
$ cat refs/changes/