关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

Gerrit使用教程

发布时间:2023-06-26 19:00:39

概述

Gerrit,中文发音大致为 "杰瑞特"。

最初是为管理Android项目而产生。 最早由Python写成,第二版后,改成用Java与SQL

Go,Qt等知名项目使用Gerrit做代码审查

Gerrit分支自Rietveld。 Python之父Guido van Rossum在Google时开发了Mondrian(命名自荷兰画家皮特·蒙德里安),作为内部代码审查工具,后面开源时取名叫Rietveld。该名称为致敬荷兰设计师赫里特·里特费尔德(Gerrit Rietveld)。。所以也不难理解后面的fork版本为啥叫Gerrit

【老万】我看代码审查(一):工具的变迁

Gerrit的github地址

Gerrit的官网 https://www.gerritcodereview.com/

安装

使用


可参考Go的Contribution Guide中关于Gerrit的部分

第一次给Go提交代码的开发者,可以用熟悉的github方式,Sending a change via GitHub

但更推荐Sending a change via Gerrit:

简而言之:

  1. git clone 项目
  2. 切换分支,git checkout -b your_branch
  3. 修改文件,而后git add 要提交的文件
  4. git codereview change (这步和git的commit作用一样,但命令不同; 这步会跳出编辑框,输入commit信息,记得最后要加个换行)

(如果还要再次修改文件)

  1. 再次修改项目,再次git add 要提交的文件
  2. git codereview change (会用新的改动amend掉老的commit)

(如果可以提交了)

  1. git codereview mail

例如:

这样就会在面板中,有一个这样的change

和通过github直接相比,这里的Owner会是你的名字,而非GerritBot


Sending multiple dependent changes

如果想提交多个独立的改动,形成一个Relation chain,就像这样

在每次修改并git add 相应文件后,不使用 git codereview change, 而是用git commit -s -m"xxxx信息"

最后再 git codereview mail 最近一次提交的commitId

最后git codereview mail 最近一次提交的commitId时可能会报错:

commit 075e77a: missing Change-Id in message footer

这是因为提交信息中,没有加上Change-Id,

按照提示,执行 f=git rev-parse --git-dir/hooks/commit-msg ; mkdir -p $(dirname $f) ; curl -Lo $f https://gerrit-review.googlesource.com/tools/hooks/commit-msg ; chmod +x $f 后再试即可

成功提交后如下图所示:

不过看起来这种情况,用all: xxx来提交单次改动就行了,没有必要用 Relation chain


更多参考:

gerrit 使用教程(一)

【译】Go 语言项目源码贡献官方指导文档

Single-Commit Work Branches和Multiple-Commit Work Branches


这里可用来 测试 和 练习



/template/Home/leiyu/PC/Static