一、Gerrit安装
略
二、用户注册
Gerrit通过Apache代理,使用HTTP验证方式登陆。所以安装完毕后可以使用apache
自带的htpasswd命令设置登录username和password。这一步骤需要管理员在服务端进行操作。
htpasswd -c /var/opt/review_site/data/passwords user1
回车后输入两次密码即可,要注意的是:存放用户名和密码的文件路径必须在Apache配置文件中声明,这个步骤在安装过程中已经做了说明。
用户从管理员那里得到初始账号和密码后,打开浏览器,输入 http://gerrit.cloudp.cc
进入系统,输入用户名和密码即可登录Gerrit系统。初次登陆系统后需要做三件事情:
1、注册邮件并确认,推荐使用公司邮箱,需要去邮箱里点击链接以确认注册。
2、填写full name,这个地方和username最好一致,比如username为yangke,fullname也需要填写yangke,但是第一次填写和username相同的fullname的时候无法保存,这个时候就需要先填写一个和username不同的fullname,保存;然后再填入一个和username相同的fullname,保存。这样就可以使username和fullname保持一致了。
3、添加本地ssh key。Gerrit通过ssh协议进行代码clone或者push动作,所以我们可以通过生成ssh密钥进行web端、本地、远程Git个服务器的通信。首先我们需要在本地的Git客户端生成一个密钥对,以windows版本的Git Bash为例。打开Git Bash,
输入:
ssh-keygen –f ~/.ssh/username
友情提示,此处的username务必和上一步骤的username相同。三次回车之后就 可以得到一个密钥对。
cd ~/.ssh/ && ls
可以看到两个文件username和username.pub。使用cat命令把username.pub的内容复制到gerrit浏览器页面,具体位置请点击右上角用户名,setting–>SSH Public Key,如下图
把username.pub的内容复制进入空白处,点击Add按钮即可。回到Git Bash界面,设置ssh的配置文件:
vim ~/.ssh/config
host gerrit
user username
hostname 192.168.1.13
port 29418
identityfile ~/.ssh/username
保存退出。现在我们可以测试一下和Gerrit系统的连接情况了。在Git Bash界面执行:
ssh gerrit
到这里,用户注册步骤结束。
三、 Gerrit基础操作
Gerrit的用户根据不同的分工可以分为不同的角色,主要包括管理员(it’s me),Developer、
和Reviewer。
Developer负责提交(push)代码,也就是提交change,但是这个提交的动作不会影响代码库的master分支,而是push到了refs/for/master分支等待review。为了顺利使用Gerrit,开发者还需要对本地Git进行设置一些设置,如下例:
git config --global user.name “yangke”
git config --global user.email “yangke@163.net”
Reviewer负责进行代码审查,并对代码进行打分,得到+2分的代码就可以submit,也就是提交到最终的代码库。同时如果代码不过关,Reviewer可以将代码打回,这个时候需要开发者修改代码后重新提交。
例如,我们现在在一个名为pbsWeb.git的代码库中进行开发工作,首先开发者需要clone代码库到本地:
git clone gerrit: pbsWeb.git
值得一提的是,初次clone下来的代码库并不能顺利的push,因为缺少相应的文件,需要执行以下步骤:
例如,开发者clone到了pbsWeb.git这个库,并在修改代码后push
git clone gerrit: pbsWeb
cd pbsWeb
scp -i ~/.ssh/admin -p -P 29418 admin@192.168.1.13:hooks/commit-msg .git/hooks
git add code_file
git commit –m “bunny”
git push origin HEAD:refs/for/master
完成以上步骤,就完成了一个change提交,可以在Gerrit的web界面看到一个change。后面的提交动作变不需要执行上面命令中的scp命令也可以正常push。
点击左下方的test.c就可以看到具体的代码,左侧是未提交之前的,右侧是提交之后的,这样可以很清楚的进行对比。
开发者本身不会具有代码段的review权限,只有Reviewer才可以对开发者提交的代码进行review并打分,如果代码过关,Reviewer就可以对代码进行submit操作,也就是提交到最终的代码库。
以上的步骤就完成了一次完整提交动作。
四、 权限控制
略~