为什么要使用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. 【cl】Json学习

    http://www.cnblogs.com/java-pan/archive/2012/04/07/2436507.html

  2. 百度地图api简单使用方法

    百度地图API的使用方法   百度地图API 开始学习百度地图API最简单的方式是看一个简单的示例.以下代码创建了一个520x340大小的地图区域并以天安门作为地图的中心: 1. <html&g ...

  3. 浅谈js的键值对key和value

    > 昨晚无意中看到类似下面结构的一段代码的取值问题,引起我的兴趣,花了点时间写了个demo给大家分享一下... var obj = [ {"2011":{"name ...

  4. 0601 Spring2.0 发布会

    ProductBacklog:继续向下细化; 1.界面美化,统一界面风格,以简洁美观为主: 2.丰富版面的内容,吸引用户: 3.尝试增加新的版面: Sprint 计划会议:确定此次冲刺要完成的目标 1 ...

  5. nginx 启动,停止和重新加载配置

    要启动nginx的,运行可执行文件.一旦nginx的启动时,它可以通过与-s参数调用可执行来控制.使用以下语法 nginx -s signal 其中,信号可以是下列之一: stop - fast sh ...

  6. WebForm---登陆状态保持(Cookies内置对象)

    登录状态保持: 首先做一个登录界面,点击 登录按钮 protected void Page_Load(object sender, EventArgs e) { Button1.Click += Bu ...

  7. C++/MFC如何启动另一个应用程序并获取其进程 ID

    ShellExecute( hWnd: HWND; {指定父窗口句柄} Operation: PChar; {指定动作, 譬如: open.runas.print.edit.explore.find[ ...

  8. 深入理解js——函数和对象的关系

    函数也是对象,但是函数却不像数组--数组是对象的一种,它是对象的一个子集.函数和数组之间不是单纯的包含与被包含的关系,它们之间有点像鸡生蛋蛋生鸡的逻辑. 来例子:function Fn(){ this ...

  9. LZW压缩算法

    转载自http://www.cnblogs.com/jillzhang/archive/2006/11/06/551298.html 记录此处仅自己供学习之用 lzw解压缩算法: 用单个字符初始化字符 ...

  10. rotate the clock

    A program test: You are given N round clocks. Every clock has M hands, and these hands can point to ...