Gerrit使用教程

1Gerrit 简介

Gerrit 是一个基于 web 的代码评审工具, 它基于 git 版本控制系统。旨在提供一个轻 量级框架, 用于在代码入库之前对每个提交进行审阅。开‎发人员的修改首先将上载到 Gerrit, 但 实际上并不成为项目的一部分, 直到它们被审阅和接受。它是标准开源过程的一个工具来支持提 交补丁程序, 然后由项目成员在应用到代码库之前进行评审。‎

Gerrit 首先是一个临时区域, 在提交的代码成为代码库的一部分之前, 可以对其修改进行 检查。‎普通开发人员可以随意提交代码,但是需要专家(特定权限)对提交的 代码进行评审 打分,对于不合格的代码,专家有废弃的权利,只有检视通过的代码,才能被专家提交入库。

2章 环境配置

账号 管理

我们使用 LDAP(Lightweight Directory Access Protocol)作为 Gerrit 的账号管理服务系

统,并使用 LAM(LDAP Account Manager)web 前端应用程序来进行账号的配置,包括账号 的新建、修改、删除等操作,下面将对 LAM 做简单介绍。

2.1.1 初始配置

LAM 配置 http://192.168.15.37/lam 浏览截图页面如下:

2,进入 LAM 配置:Lam 配置有通用设置和服务器配置,如下图所示,前者用于配置密码 策略、日志、重设管理员密码等,我们保持默认即可,后者用于编辑服务器相关配置,需要配置 好了才能使用账号管理系统。

3,编辑服务器配置文件:输入管理员密码(默认 lam)后可以进入配置界面。

Gerrit 使用教程

4,编辑通用设置:如下图所示,我们需要设置树状结构后缀为 dc=sxkj,dc=com,缺省语 言为英文,需要改成中文,登陆方式改为固定,合法用户列表为 cn=admin,dc=sxkj,dc=com , 即只有 admin 用户能够登陆和使用系统。

5,账号类型设置:我们需要配置用户,组和主机的账号类型,如下图所示

6,模块设置:在模块设置中设置好用户,组和主机的 ID 范围,然后点击左下方的保存即可。

2.1.2 新建组

初始设置完成后,我们可以在 LAM 中添加用户账号,用于 gerrit 访问,添加账号之前需要 首先新建组,然后才能添加成员。

1,登入 LAM 系统:输入 LAM 账号管理密码,该密码在安装 LAM 时配置。

2,新建组:登入后直接点新建组(可以不用新建主机)

3,信息输入:输入完信息,设置好密码后保存,即可完成新建组

4,组管理:如下图所示,为第三步新建的组 成员,我们也可以对组进行编辑 ,删除,信息 查看等操作。

2.1.3 新建用户

新建组完成后,我们才能真正的开始新建用户。 1,点击新建组:登入 LAM 后,在用户栏目点击新建组

2,输入信息:输入个人信息和 unix 信息,并设置好密码后,新用户便新建完成,我们就可以使 用该账号登陆 gerrrit 系统了。

3, 用户管理:下 图是我们新建好的用户,我们可以对其记 性编辑,删除,信息查看等操作。

2.2 Gerrit 注册邮件 提醒

用户账号配置完成后,就可以使用该账号登陆 Gerrit web 端,在使用 Gerrit 前,我们先要注 册并激活邮件提醒机制。

1,登陆 Gerrit 系统,通过 Chrome 浏览器访问http://192.168.15.37:8080/login/并输入 LAM 中 配置好的账号和密码。

2,进入个人 Gerrit 设置:

3,输入 Email 信息:依次点击 Contact Information->Register New Email…,输入个人邮箱后 点 Register。

3,邮箱激活:登入上一步输入的邮箱,并进入如下所示的链接即可完成邮箱激活,邮箱激活 后,后续有检视等活动,会有邮件提醒提示账号所有人去处理这些活动。

2.3

本地 git 工具安装

本节仅介绍如何在 Windows 和 linux 环境下安装 git 工具。

2.3.1 Windows 环境安装 git 工具

下载 Git_V1.9.5_preview20150319.1435310867.exe 工具,并安装,主要有如下两个勾选情况, 其他步骤直接点下一步即可。

2.3.2 Linux 环境安装 git 工具

直接使用 sudo apt-get install git 命令即可。

2.4

本地 git 初始化配置 及代码下载

2.4.1 windows 环境下获取本机公钥

1,首先代码下载目录运行 Git Bash,如下图所示

2,如果之前没有生成过公钥,需要运行 ssh-keygen -t rsa -Cyour_email@xx.com,然后一直回 车,最终生成的公钥如下图所示。

2.4.2 linux 环境下获取本机公钥

打开 bash 窗口,输入与 windows 环境下同样的命令 ssh-keygen -t rsa -Cyour_email@xx.com, 一直回车,就可以生成公钥。

2.4.3 配置公钥

1, 登入 Gerrit 检视系统,并进入设置项目。

2,依次点击 SSH Public Keys->Add Key…

Gerrit 使用教程

3,输入获取的公钥,并点击 Add 即可添加公钥。

2.4.4 其他配置

配置好公钥后,在做如下配置,讲邮箱和用户名配置到 git 即可下载代码。

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

2.4.5 代码下载

1,依次点击 Projects->List->TestProject,其中 TestProject 为我们举例需要下载的代码工程。

2,进入工程后,依次点击 Clone with commit-msg hook->ssh->复制按钮

Gerrit 使用教程

3,在 Bash 控制台粘贴下载地址并回车即可下载工程。

3.1

3Gerrit 项 目管理

新建 项目或分支

Gerrit 提供可视化的前端 web 管理系统,可以方便开发者直接通过访问 web 网站的形式来管

理项目。我们可以在该平台创建项目或者新建分支等操作。 1,新建项目:登入 Gerrit 后依次点击 Project -> Create New Project

2,填写项目信息:

例如:

Project Name: testProject

Rights Inherit From: All-Projects (权限继承) 勾选 Create initial empty commit

然后点击 Create Project 即可创建工程

创建好的工程如下图所示:

3,工程配置:

Gerrit 使用教程

4,新建分支:如下图所示,点击 Branches,并输入 Branch Name 和需要继承的分支 Initial Revision,并点击 Create Branch 即可创建分支,创建完成后,两个分支代码便可以独立迭代演进, 互不影响。

3.2

项目 权限管理

上一节中,我们在创建项目时,指定 了 Rights Inherit From 的权限继承策略为 All-Projects,即

All-Projects 规定了“哪些人”有“哪些权限”对该项目进行相关操作,如提交,检视,入库权限。 下面介绍如何编辑 All-Projects 策略。

1 , 创 建 组 成 员 : 权 限 策 略 是 根 据 组 来 划 分 的 , 因 此 需 要 创 建 组 , 如 下 图 所 示 依 次 点 击 People->Create New Group->输入组名- >Create Group, 即可创建组

2,添加组成员:进入 sxkj_com 组,并添加成员,注意添加的成员必须是 Lam 中注册过的用 户,否则会添加失败。

3,依次点击 Project->List->All-Projects->Edit 即可对权限策略进行编辑

3.3

代码 review 流程

本节通过举例介绍一个完整的代码 review 流程。

1,代码下载:参考本文 2.4.5 章节介绍内容,如果已下载请务必使用 git pull 命令将代码拉到

最新状态。

2,通过 IDE 等工具对代码进行修改,修改内容如下图所示:

3,使用 git add 等命令讲代码提交到 gerrit 检视服务器,具体命令如下图所示:

4,通过浏览器访问第 3 步中提示的http://192.168.15.37:8080/6,或者登入 Gerrit 后,依次点 击 All->Open 可以看到目前已提交待审核的列表,进入我们刚才提交的修改,如下图所示。

5,添加检视人员:如下图所示,操作完成后检视人员会收到邮件提醒,或者不添加检视人员, 直接将http://192.168.15.37:8080/6 发送给检视人员也可以。

6,代码检视:检视人员打开链接后可以对代码进行检视,如下图所示。

7,检视结果:检视人员检视完成后,可以做的常用操作如下。

1)检视打分并提交;2)仅检视打分;3)修改意见备注;4)遗弃,删除修改,下面讲介绍 什么情况下,检视人员应该怎样处理检视任务。

■检视打分并提交,如果 检视人员认为开发者修改的代码无误,且有打 分+2 权限 ,以及有 commit 提交权限可以执行该操作,注意:完成该操作后,代码会直接入库,请谨慎处理,操作示 意如下。

■仅检视打分,如果检视人员仅有打分权限,可以在审核完代码后给代码打分,可以供有代 码 commit 提交权限的其他检视人员参考,操作示意图如下:

■修改意见备注,检视人员认为提交者写的代码有问题,可以直接在代码中写出修改备注意 见,操作如下,首先选中某代码片段,然后点击 press c to comment 或者按下键盘上的 C 键,即可 对修改进行评论,点击 save 后可以保存修改意见备注。

■遗弃,删除修改,检视人员检查完代码后,认为代码不合格或者不该提交,应该将该修改 删除或者遗弃,删除后 gerrit 将没有任何记录,遗弃后 gerrit 会保留提交记录,示意图如下。

4章 常用命令和操作

4.1常用 git 命令

git pull //把远程库的代码更新到工作台

git pull --rebase origin master //强制把远程库的代码跟新到当前分支上面

git fetch //把远程库的代码更新到本地库

git add . //把本地的修改加到 stage 中

git commit -m 'comments here' //把 stage 中的修改提交到本地库

git branch 查看远程分支/全部分支

git checkout master/branch //切换到某个分支

git checkout -b test //新建 test 分支

git checkout -d test //删除 test 分支

git merge master //假设当前在 test 分支上面,把 master 分支上的修改同步到 test 分支上 git merge tool //调用 merge 工具

git stash //把未完成的修改缓存到栈容器中

git stash list //查看所有的缓存

git stash pop //恢复本地分支到缓存状态

git blame someFile //查看某个文件的每一行的修改记录()谁在什么时候修改的)

git status //查看当前分支有哪些修改

git log //查看当前分支上面的日志信息

git diff //查看当前没有 add 的内容

git diff --cache //查看已经 add 但是没有 commit 的内容

git diff HEAD //上面两个内容的合并

git show commit-id //显示某次 commit-id 的修改内容

git reset --hard HEAD //撤销本地修改

git reset --hard commit-id //撤销 commit-id 前面的所有修改

git apply test.patch //打包 patch

4.2常用 Gerrit 操 作

1,挑单,及讲分支 A 的修改挑到分支 B,操作示意图如下图所示,该操作可以将 master 分

支的修改合到 master_new 上面,而不需要修改任何代码,也不需要进行本地 git 操作(除非合入 有冲突)。

2,修改代码,如果开发人员认为自己提交的代码有点小问题,可以直接在 gerrit 进行修正, 而无需进行本地代码修改(类似于本地 git commit --amend),示意如下。

3,回退已提交修改,开发人员可以将已提交入库的修改进行回退操作,原理是用依次新的修 改 commit-id 来冲掉之前的 commit-id,回退操作完成后,会生成新的修改链接,需要检视人员检 视入库,操作示意如下:

4,查看记录,无论待检视、已提交、遗弃的修改,我们都可以在 gerrit 找到相关记录,示意 如下,点击 Open 可以查看待检视的记录,点击 Merger 可以查看已提交入库的记录,点击 Abandoned 可以查看已遗弃的修改记录。

5,收藏提交,操作如下,收藏后的提交可以在 My-Starred Changes 中查看

6,条件查询提交,收藏提交

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容