为什么要使用Gerrit?

最先接触Gerrit时是Android开发过程中,提交代码给负责人审核时,用到的一款软件。它就是一款代码审核的工具。(向Git代码库推送push代码时,必须要经过Gerrit服务器,实现代码审查)几乎任何需要正式发布的项目都应当使用Gerrit来进行代码审查。

代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但是在实际项目执行过程中,却因为种种原因被Delay甚至是忽略。

Gerrit是Google为Android系统研发量身定制的一套免费开源的代码审核系统,它在传统的源码管理协作流程中强制性引入代码审核机制,通过人工代码审核和自动化代码验证过程,将不符合要求的代码屏蔽在代码库之外,确保核心代码多人校验、多人互备、自动化构建核验。从我们实际使用效果看,Gerrit在核心代码质量控制、知识传承、团队培养等方面都具备很高的实用价值,推荐广大开发团队使用。

code review 的几个方面:代码风格;编码规范;代码结构;框架工具;业务逻辑;安全隐患;性能问题...

从软件团队建设角度来看:让另一个软件开发人员来审查别人的代码,相当于是“结对编程”——提高团队之间的交流,团队之间的“帮代”。执行了审核的一套工作流程之后,才可能经批准并纳入正式代码块中。

时机:入库之前;提交代码之后;测试之前;发版之前;发版之后;

Gerrit是如何实现代码审核的?

Gerrit和Git结合实现代码审核流程。

比如:git push指令中执行的refs/for和refs/heads参数,其实并不是Git的规则,而是Gerrit的规则。

举个栗子:git push origin HEAD:refs/for/mybranch需要经过code review之后才可以提交;refs/heads/mybranch不需要code review。代码提交到Gerrit部分时,实际上是人为分为两个部分,待修改区(Gerrit)和中心库(Git代码仓库)。

Gerrit相当于是代码进入Git代码仓库的通道。

Gerrit的使用的更多相关文章

  1. CentOS安装gitlab,gerrit,jenkins并配置ci流程

    CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...

  2. Centos 安装配置gerrit

    关闭selinux,不然nginx的反向代理会报错connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting ...

  3. Gerrit增加SSL证书

    在http的基础上增加SSL 配置gerrit.config文件 [gerrit] basePath = git canonicalWebUrl = https://172.16.99.212/ .. ...

  4. 解决:Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle

    同步cm12.1初始化出现的问题: fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle fatal: err ...

  5. Gerrit管理帐号

    文档 Gerrit服务器启动后,网站上有一个Documentation链接.点击后会看到四个选项: index,searching,uploading和access control 文档内容很多,不必 ...

  6. Gerrit与Gitlab同步配置replication&其他配置

    一.Gerrit与Gitlab同步配置 当配置好gerrit环境后,还需要与现有gitlab库进行同步配置,否则会影响现有开发与打包流程. 1.安装gerrit replication插件 unzip ...

  7. 如何搭建开源code review gerrit服务器

    搭建环境:Ubuntu 14.04 一.环境准备 1.Java环境 gerrit依赖,用于安装gerrit环境. 下载:jdk-7u79-linux-x64.tar.gz http://www.ora ...

  8. gerrit session expired 怎么解决,搜索未果

    gerrit session expired,怎么解决,搜索未果

  9. 【Gerrit】Gerrit cmd query (gerrit命令行查询change信息)

    本文仅展现个人使用情况和理解,英文原址:https://review.openstack.org/Documentation/cmd-query.html 基本使用格式: ssh -p <por ...

  10. gerrit 部署手册

    概述 gerrit是谷歌开发用于安卓系统的代码审查的系统,目前已经开源.gerrti使用简单并友好.这里记录了gerrti的部署方法以及其中可能存在的陷阱和问题. 创建专属系统用户 Gerrit co ...

随机推荐

  1. (转)AVI文件格式解析+AVI文件解析工具

    AVI文件解析工具下载地址:http://download.csdn.net/detail/zjq634359531/7556659 AVI(Audio Video Interleaved的缩写)是一 ...

  2. Linux 服务器的网络配置 - 1. 查看 Linux 服务器的网络连接

    1. 查看 Linux 服务器的网络连接 1)查看主机名: liuqian@ubuntu:~$ hostname ubuntu 2)查看 ip 地址: 用 ifconfig 即可,这里介绍命令组合用法 ...

  3. ORA-00245: control file backup failed; target is likely on a local file system

    ORACLE11G RAC alert报错如下:Errors in file /u01/app/oracle/diag/rdbms/dljyzs/dljyzs1/trace/dljyzs1_ora_8 ...

  4. AX 2012 关于parts 添加

    只有当引用parts的form中design属性style为 ListPage, DetailsFormMaster, or DetailsFormTransaction,才能创建FactBox pa ...

  5. IDEA新建javaWeb以及Servlet简单实现

    刚开始用IDEA开发,还不太熟悉,因此写一个教程,加深印象 1.新建一个Web项目 两种方法:java 和 Java Enterprise(推荐) 第一种)通过Java工程创建,这个方法需要手动导入T ...

  6. cocoapod 安装

    淘宝镜像: sudo gem sources -a https://ruby.taobao.org/ sudo gem sources --remove https://rubygems.org/ 安 ...

  7. 纸上谈兵:图(graph)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 图(graph)是一种比较松散的数据结构.它有一些节点(vertice),在某些节 ...

  8. jQuery基础 -- 如何判断页面元素存在与否

    在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在.原因是对一个不存在的元素进行操作是不允许的.例如: document.getElementById(&q ...

  9. js复制input 框中的值

    function copy(){ var Url2=document.getElementById("copyValue"); Url2.select(); document.ex ...

  10. Mac下导出chrome插件

    chrome最强大的功能之一就是插件,有时候需要给小伙伴们共享一些插件,所以需要将自己chrome中的插件打包,在mac下打包插件还是挺费劲的,在此记录. 打开chrome的扩展程序,找到要导出的插件 ...