目录
已有项目与gerrit上建立的exist-project关联
前言
原文:关于Gerrit code review 介绍与安装;https://www.cnblogs.com/chenpingzhao/p/9337117.html
代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略。在实践中,给大家推荐一款免费、开放源代码的代码审查软件Gerrit。
Code Review是什么
本地写代码 --->git push origin HEAD:refs/for/xxx推到gerrit平台托管,要请人员评审
---->评审人员code view,没有问题,点同意---->gerrit把代码push到远程仓。
Gerrit简介
Gerrit是Google为Android系统研发量身定制的一套免费开源的代码审核系统,它在传统的源码管理协作流程中强制性引入代码审核机制,通过人工代码审核和自动化代码验证过程,将不符合要求的代码屏蔽在代码库之外,确保核心代码多人校验、多人互备和自动化构建核验。
Gerrit之前的系统架构:
Gerrit之后的系统架构:
通过Gerrit机制将代码做分隔。
Gerrit适用性
几乎任何需要正式发布的项目都应当使用Gerrit来进行代码审查,如果Team中有新人,必须使用Gerrit确保代码质量。
工作流程
使用过git的同学,都知道,当我们git add --> git commit --> git push
之后,你的代码会被直接提交到repo,也就是代码仓库中,就是图中橘红色箭头指示的那样。
那么gerrit就是上图中的那只鸟,普通成员的代码是被先push到gerrit服务器上,然后由代码审核人员,就是左上角的integrator在web页面进行代码的审核(review),可以单人审核,也可以邀请其他成员一同审核,当代码审核通过(approve)之后,这次代码才会被提交(submit)到代码仓库(repo)中去。
无论有新的代码提交待审核,代码审核通过或被拒绝,代码提交者(Contributor)和所有的相关代码审核人员(Integrator)都会收到邮件提醒。
gerrit还有自动测试的功能,和主线有冲突或者测试不通过的代码,是会被直接拒绝掉的,这个功能似乎就是右下角那个老头(Jenkins)的任务。
整个流程就是这样。 在使用过程中,有两点需要特别注意下:
- 当进行commit时,必须要生成一个Change-Id,否则,push到gerrit服务器时,会收到一个错误提醒。
-
提交者不能直接把代码推到远程的master主线(或者其他远程分支)上去。这样就相当于越过了gerrit了。 gerrit必须依赖于一个
refs/for/*
的分支。假如我们远程只有一个master主线,那么只有当你的代码被提交到
refs/for/master
分支时,gerrit才会知道,我收到了一个需要审核的代码推送,需要通知审核员来审核代码了。
当审核通过之后,gerrit会自动将这条分支合并到master主线上,然后邮件通知相关成员,master分支有更新,需要的成员再去pull就好了。而且这条refs/for/master
分支,是透明的,也就是说普通成员其实是不需要知道这条线的,如果你正确配置了sourceTree,你也应该是看不到这条线的。
这两点很重要!!这两点很重要!!这两点很重要!!
Gerrit安装
3.1. 环境准备
-
①. Linux,Gerrit需要Linux环境,ubuntu 或者 centos,这里使用Ubuntu;
-
②. JDK,使用1.7版本就行
-
③. MySQL,其实这个非必须,Gerrit自带的有H2数据库
-
④. nginx/apache,作为认证和反向代理服务器;
-
⑤. Maven, 在安装的过程中会下载一些jar文件;
-
⑥. Git,用来拉取代码
3.2 java环境安装
下载:jdk-7u79-linux-x64.tar.gz JavaSE Upgrade
安装:sudo tar zxvf ./jdk-7u79-linux-x64.tar.gz -C /opt
配置:vim ~/.bashrc(针对当前用户) or vim /etc/profile(针对所有用户,推荐)
- export JAVA_HOME=/opt/jdk1.7.0_79
- export JRE_HOME=$JAVA_HOME/jre
- export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
- export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
验证:
- java -version
- java version "1.7.0_79"
- Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
- Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
3.3 git环境
gerrit依赖,用来操作git repository
1 |
|
3.4 下载gerrit
1 |
|
3.5 apache2安装
1 |
|
验证:
1 |
|
3.6 gerrit管理帐号
gerrit依赖,用来管理gerrit。
1 2 |
|
并将gerrit加入sudo权限
1 |
|
gerrit ALL=(ALL:ALL) ALL (为了测试方便,开最大权限)
3.7 配置gerrit
默认安装:
1 |
|
更新配置文件:sudo vim ~/review_site/etc/gerrit.config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|