Gerrit代码审查工具
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代码审查工具的更多相关文章
- docker运行gerrit(代码审查工具)
gerrit是什么? Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面. gerrit背景 Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面.利用网页浏览器,同一个团队的软 ...
- 静态代码审查工具FxCop插件开发(c#)
FxCop是一款微软官方提供的.net平台代码审查工具,目的是检查我们编写的程序集的代码是否符合规范.FxCop默认提供的是微软默认的审查规则,而且该规则符合<Framework DesignG ...
- 代码审查工具之PMD操作指南
上周客户要求对OA系统的代码质量进行了一个整体审查,并且要出一份报告给领导. 为此花了半天时间把代码审查工具PMD琢磨了下,现将具体操作步骤描述如下,以供大家参考! 1 前言 质量是衡量一个软件是否成 ...
- [转载] Jupiter代码审查工具使用参考
转载自http://blog.csdn.net/jemlee2002/article/details/5715355 一. Jupiter 是什么? 这里的 Jupiter 是一个开源的代 ...
- 代码审查工具Sonarqube安装
前言:在项目开发当中,完成需求并上线是一件很开心的事情,但为了能按时上线功能不得不为了完成功能而写代码,写的时候觉得先把功能上了以后再回头优化此处代码,但真正上线之后你就会发现你再也不想去修改之前遗留 ...
- Jupiter Code Review Reference -- Jupiter代码审查工具使用参考
Jupiter Code Review Reference -- Jupiter代码审查工具使用参考 (修改版) 原创 2010年07月06日 10:43:00 标签: 审查 / reference ...
- Phabricator是什么,代码审查工具
Phabricator是什么? Phabricator支持两种代码审查工作流:"review"(提交前审查)和 "audit"(提交后审查). Phabrica ...
- 代码审查工具StyleCop
“代码审查”或是“代码评审”(Code Review),这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法.由此,我们可以审查代码的风格.逻辑.思路 ...
- Review Board——在线代码审查工具
代码审查(Code Review)不但可以提高质量,而且还是一个知识共享和指导的极好的手段.不幸的是,准备工作的辛苦和工具支持的缺乏让代码审查很容易被延至“稍后再议”.Review Board的目标便 ...
随机推荐
- 【LOJ】#2078. 「JSOI2016」无界单词
题解 用所有的方案减去有界的方案 我们规定两个前缀后缀相同时长度最短的,设长度为l,因为长度最短所以他们也是无界单词,可以递推 \(f[i] = \sum_{j = 1}^{\lfloor \frac ...
- 7-11Zombie's Treasure Chest uva12325
题意 你有一个体积为N的箱子和两种数量无限的宝物 宝物1的体积为s1 价值为v1 宝物2同理 输入均为32位带符号整数 你的任务是计算最多能带走多少价值的宝物 暴力枚举: 首先明白一点 ...
- Java学习之模拟纸牌游戏,List的ArrayList,Map的HashMap,重写Collections类的sort方法对指定类进行通过特定属性排序,输入异常处理等的学习
首先放上测试效果图 设计框架 具体的代码实现 创建玩家类 public class Player implements Comparable<Player>{ int id; String ...
- python3之Django模型(一)
1.模型概述 模型是关于您的数据的唯一,明确的信息来源,它包含您正在存储的数据的重要字段和行为.通常,每个模型映射到单个数据库表. 每个模型都是一个子类的python类django.db.models ...
- 【python学习-3】python数据类型
1.数字 在python 2.x中,数字类型有4种,int.long.float 和 complex(复数):而python 3 中,只有 int.float 和 complex 3种,python ...
- UI控件(ios)---UIImageView
在实现网络异步存储中,突然发现对控件UIImageView有点生疏了,在这里复习一下. UIImageView,顾名思义是用来放置image的. 1.初始化UIImageView UIImageV ...
- BZOJ.2007.[NOI2010]海拔(最小割 对偶图最短路)
题目链接 想一下能猜出,最优解中海拔只有0和1,且海拔相同的点都在且只在1个连通块中. 这就是个平面图最小割.也可以转必须转对偶图最短路,不然只能T到90分了..边的方向看着定就行. 不能忽略回去的边 ...
- SHOI2019旅游记
题外话 为什么不更ZJOI day1的游记呢.... 因为考挂自闭了不想更.等day2考完再说咕咕咕 还是更个SHOI旅游记吧!反正不是自家省选,玩得真开心~~~ day0 SH好热好热啊,感觉到夏天 ...
- xenserver系列之安装与配置
文章内容 1 ,安装 一.选择键盘类型:US. 二.这个是欢迎界面,选择“OK”即可. 三.这个是使用协议,我们必须得接受,否则就不能继续安装了! 四.这个是警告,告诉你XenServer所需要的硬件 ...
- hadoop 视频教程2
Hadoop大数据零基础实战培训教程 一,教程内容: 1,Hadoop2.0YARN深入浅出系列 2,Avro数据序列化系统 3,Chukwa集群监控系统 4,Flume日志收集系统 5,Greenp ...