1 Gerrit简介

Gerrit,一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。

1 注册Gerrit

1.1 账号密码

注册Gerrit需给Gerrit管理员(yangjunyu@wingtech.com)发送邮件获取账号密码。

从管理员处获取账号密码后,登录Gerrit:http://192.168.42.21:8083/

1.1 修改名字和邮箱

如邮箱为xxxx@google.com,则“Full Name”填写为xxxx:

注册邮箱:

注册成功后会给邮箱发送一封邮件,点击链接进行验证(如果某些浏览器无法打开验证链接,复制到IE上打开):

1.1 添加用户

linux下的用户名须和管理员给的Gerrit账号名相同,如果没有,请添加新用户:

root@BuildHost:~# adduser gerrit

1.1 添加ssh密钥

备份.ssh(如果存在的话):

生成密钥:

rm -rf ~/.ssh

ssh-keygen -t rsa -C "自己邮箱地址"   ###一直按回车键即可

然后公钥添加到Gerrit:

把 ~/.ssh/id_rsa.pub 内容复制好

粘贴到

1 开发人员使用

1.1 下载代码

正确配置好邮箱和ssh公钥后,根据Gerrit管理员给出的地址下载代码:

如:git clone ssh://用户名@192.168.42.21:29418/test

1.1 下载commit-msg脚本

【重要:使用Gerrit必须要有此脚本】

1. 拷贝脚本到本地

scp -P 29418 -p 192.168.42.21:/hooks/commit-msg .

2. 把脚本拷贝到git钩子路径

cp commit-msg /usr/share/git-core/templates/hooks

chmod +x /usr/share/git-core/templates/hooks/commit-msg

1.1 提交代码审核

Gerrit不允许用户直接push代码到分支上(特别授权用户除外),否则报错:

正确的做法是所有提交都push到 HEAD:refs/for/分支名 :

格式如:git push origin HEAD:refs/for/分支名

例1:

当前处于本地分支master

代码提交到远程分支master上,则:git push origin HEAD:refs/for/master

例2:

当前处于本地分支developer

代码提交到远程分支deleloper上,则: git push origin HEAD:refs/for/developer

1.1 添加审核者

代码正确提交到分支 refs/for/* 后,需要登录Gerrit界面为刚才的提交添加相应的审核者:

登录Gerrit:http://192.168.19.225:8083/, 在“changes”下可以看到刚刚的提交,名称显示为刚刚提交所写的注释

点击进入,在“Need Code-Review”下添加相应的代码审核者(请根据自己项目情况添加指定的审核者,此处仅作演示)

如果审核通过,会收到提示邮件(Code-Review为正数,说明审核通过,但代码未合入分支):

代码被合入后,会收到邮件提示(说明代码已经正确提合入到分支):

1.1 审核失败再提交

当收到审核失败的邮件时(Code-Review为负数,需要记下Change-Id,下一步提交时会用上),需要修改代码重新提交:

修改好代码后,重新提交代码:

【重要:代码审核失败后,重新提交时必须使用 git commit --amend,否则会生成新的评审任务,无法与上一次审核任务关联】

【重要:注释可以重新写,但是其中“Change-Id”必须为上一次审核任务失败的Change-Id,可在Gerrit或者上一步的邮件中查看得到】

再push代码到Gerrit:

最后无需重复步骤“3.3 提交代码审核”,Gerrit会自动给原来的审核者发送相应邮件

4 审核人员使用

4.1 收到审核邮件

当有审核任务邮件时,点击链接打开Gerrit

4.2 查阅审核任务

打开审核任务如下:

4.3 添加其他审核者

如果需要,这里可以添加其他人员审核(需要有审核权限)

4.4 查看修改内容

点击“Side-by-Side”按钮,查看修改内容:

点击“next”查阅下一项修改:

4.5 审核通过/失败

点击“Review”

审核通过:

审核失败:

代码提示被blocked:

审核失败的任务会给提交者发送邮件,通知其修改

5 其他

5.1 常用别名设置

git config --global alias.st status

git config --global alias.ci commit

git config --global alias.co checkout

git config --global alias.br  branch

git config --global color.ui true

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset %C(bold blue)<%an>%Creset ---%C(yellow)%d%Creset %s %Cgreen(%cr)' --abbrev-commit"

Gerrit代码审查工具的更多相关文章

  1. docker运行gerrit(代码审查工具)

    gerrit是什么? Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面. gerrit背景 Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面.利用网页浏览器,同一个团队的软 ...

  2. 静态代码审查工具FxCop插件开发(c#)

    FxCop是一款微软官方提供的.net平台代码审查工具,目的是检查我们编写的程序集的代码是否符合规范.FxCop默认提供的是微软默认的审查规则,而且该规则符合<Framework DesignG ...

  3. 代码审查工具之PMD操作指南

    上周客户要求对OA系统的代码质量进行了一个整体审查,并且要出一份报告给领导. 为此花了半天时间把代码审查工具PMD琢磨了下,现将具体操作步骤描述如下,以供大家参考! 1 前言 质量是衡量一个软件是否成 ...

  4. [转载] Jupiter代码审查工具使用参考

    转载自http://blog.csdn.net/jemlee2002/article/details/5715355 一.       Jupiter 是什么? 这里的 Jupiter 是一个开源的代 ...

  5. 代码审查工具Sonarqube安装

    前言:在项目开发当中,完成需求并上线是一件很开心的事情,但为了能按时上线功能不得不为了完成功能而写代码,写的时候觉得先把功能上了以后再回头优化此处代码,但真正上线之后你就会发现你再也不想去修改之前遗留 ...

  6. Jupiter Code Review Reference -- Jupiter代码审查工具使用参考

    Jupiter Code Review Reference -- Jupiter代码审查工具使用参考 (修改版) 原创 2010年07月06日 10:43:00 标签: 审查 / reference  ...

  7. Phabricator是什么,代码审查工具

    Phabricator是什么? Phabricator支持两种代码审查工作流:"review"(提交前审查)和 "audit"(提交后审查). Phabrica ...

  8. 代码审查工具StyleCop

    “代码审查”或是“代码评审”(Code Review),这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法.由此,我们可以审查代码的风格.逻辑.思路 ...

  9. Review Board——在线代码审查工具

    代码审查(Code Review)不但可以提高质量,而且还是一个知识共享和指导的极好的手段.不幸的是,准备工作的辛苦和工具支持的缺乏让代码审查很容易被延至“稍后再议”.Review Board的目标便 ...

随机推荐

  1. 启动DELPHI2010出现 EditorLineEnds.ttr 错误的解决方法

      在网上找到了很多方法.其实解决这个问题的方法, 最简单的就是把  EditorLineEnds.ttr  改名为  EditorLineEnds.ttf 然后,安装它, 安装完成后就OK了.

  2. 2017 JUST Programming Contest 2.0 题解

    [题目链接] A - On The Way to Lucky Plaza 首先,$n>m$或$k>m$或$k>n$就无解. 设$p = \frac{A}{B}$,$ans = C_{ ...

  3. java 反射获取类的静态属性值

    public class AppTest { private NodeClass nodeClass; public static String hehe = "hehe"; pu ...

  4. 安装redis出现的问题

    这个问题是我在腾讯云上安装redis时出现的错误, 1.在执行make命令时出现的错误 解决方案,没有安装gcc 什么是gcc: GCC是一个用于linux系统下编程的编译器是一个用于编程开发的自由编 ...

  5. ADSL

    ADSL属于DSL技术的一种,全称Asymmetric Digital Subscriber Line( 非对称数字用户线路),亦可称作非对称数字用户环路.是一种新的数据传输方式. ADSL技术提供的 ...

  6. SDC信息统计分析系统ETL工具的研究与实现[专业:计算机应用技术]

    SDC信息统计分析系统ETL工具的研究与实现[专业:计算机应用技术] http://www.docin.com/p-265530271.html

  7. 无线网卡服务端工具airserv-ng

    无线网卡服务端工具airserv-ng   由于WiFi信号强度的限制,渗透测试人员只能监听主机周边范围的无线信号.为了解决这个问题,aircrack-ng套件提供了一个无线网卡服务端工具airser ...

  8. 用C语言的rand()和srand()产生伪随机数的方法总结

    标准库<cstdlib>(被包含于<iostream>中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void):从srand (seed)中指定的seed开始 ...

  9. 模板 图的遍历 bfs+dfs 图的最短路径 Floyed+Dijkstra

    广搜 bfs //bfs #include<iostream> #include<cstdio> using namespace std; ],top=,end=; ][]; ...

  10. BZOJ.2806.[CTSC2012]Cheat(广义后缀自动机 DP 单调队列)

    题目链接 首先二分答案L.然后就是判断能否将原串划分出一些长度不小于L的子串,这些子串要是给定n个串中的某个串的子串,且满足它们的长度之和不小于原串长度的90%. 贪心多长选一段什么的显然不对.老老实 ...