Gerrit安装
本文是以安装gerrit-2.14为例。
操作系统
Unix或Linux系统。本文的安装步骤是在Ubuntu虚拟机中执行。
安装步骤
- Apache安装
执行:sudo apt-get install apache2
注意:To run Gerrit behind an Apache server using 'mod_proxy', enable the necessary
Apache2 modules:
执行:sudo a2enmod proxy_http
执行:sudo a2enmod ssl
使新的配置生效,需要执行如下命令:
service apache2 restart
- Step-2 安装PostgreSQL数据库
执行:sudo apt-get install postgresql
注意:安装完postgresql后,会自动创建一个用户名和密码均为postgres的账户。
- Step-3 增加Gerrit需要的数据库
执行:sudo -u postgres createuser -RDIElPS sela
执行:sudo -u postgres createdb -E UTF-8 -O sela reviewdb
- Step-4 安装Gerrit
执行:java -jar gerrit-2.14.war init -d /home/sela/review_site
注意:这里以添加阿里云邮为例,不要复制SMTP相关项目
1.Create '/home/sela/review_site' [Y/n]? Y
2.Location of Git repositories [git]:
3.Database server type [h2]: postgresql
4.Server hostname [localhost]:
5.Server port [(postgresql default)]:
6.Database name [reviewdb]:
7.Database username [sela]
8.Type [LUCENE/?]:
9.Authentication method [OPENID/?]: HTTP
10.Get username from custom HTTP header [y/N]? N
11.SSO logout URL :
12.Enable signed push support [y/N]?
13.Install Verified label [y/N]?
14.SMTP server hostname [localhost]: smtp.mxhichina.com
15.SMTP server port [(default)]: 25
16.SMTP encryption [NONE/?]:
17.SMTP username [sela]: 邮箱地址
18.Behind reverse proxy [y/N]? y
19.Proxy uses SSL (https://) [y/N]? N
20.Subdirectory on proxy server [/]:
21.Listen on address [*]:
22.Listen on port [8080]:
23.Canonical URL [http://ubuntu/]: http://192.168.1.179:8080
其他配置项默认
- Step-4 邮箱配置
1.编辑./review_site/etc/gerrit.config 文件.
2.在sendemail部分添加from配置,如下:
[sendemail]
smtpServer = smtp.mxhichina.com
smtpServerPort = 25
smtpUser = 邮箱地址
from=CodeReview<邮箱地址>
3.重启Gerrit
./review_site/bin/gerrit.sh restart
- Step-5 Apache反向代理配置
1.编辑/etc/apache2/sites-enabled/000-default.conf ,如下:
<VirtualHost 192.168.1.179:80>
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Welcome to Gerrit Code Review Site!"
Require valid-user
AuthUserFile /home/sela/review_site/etc/passwords
</Location>
AllowEncodedSlashes On
ProxyPass / http://127.0.0.1:8080/
</VirtualHost>
注意:The ProxyPass 8080 must be same with the ./review_site/etc/gerrit.config.
When access the http://192.168.1.179:80,Apache2 will lead you to
http://192.168.1.179:8080.
ProxyPass 8080必须和./review_site/etc/gerrit.config里的端口配置一致。当登录http://192.168.1.179:80的时候,Apache2会帮助打开http://192.168.1.179:8080。
2.重启Apache服务
执行:service apache2 restart
- Step-6 添加Gerrit账户
1.touch /home/sela/review_site/etc/passwords
2./usr/bin/htpasswd -b review_site/etc/passwords sela sela
- Step-7 访问Gerrit网址
http://192.168.1.179:80
新建项目
然后可以通过如下命令克隆代码 :
git clone http://192.168.1.179:8080/test1
提交代码流程
- 1.添加Gerrit账号
/usr/bin/htpasswd -b review_site/etc/passwords guest guest
- 2.添加Ubuntu用户
sudo adduser guest
su guest
- 登录gerrit网址
http://192.168.1.179:80
- 4.Git配置
执行:ssh-keygen -t rsa
复制 ~/.ssh/id_rsa.pub 到Gerrit SSH Public keys
- commit模板
git config --global commit.template ~/.git_msg
git config --global core.editor vim
git config --global user.email "邮箱地址"
git config --global user.name "guest"
- 6.push的密码
当push代码到远程的时候,会提示输入用户名和密码。其中用户名是guest,密码可以复制Gerrit网址中的HTTP password页面。 - 权限管理
注意:默认,普通用户没有提交代码和review代码的权限。只有管理员有这个权限
可以按照如下配置给普通用户添加权限:
常见问题
- Git代码库在哪里?
./review_site/git/ProjectName
- Gerrit和git代码库应该在通一台机器上。
- Gerrit 错误log如何查看?
tail -f ./review_site/logs/error_log
- 查看git配置
git config --global --list
- 机器重启后,如何重启Gerrit?
service apache2 restart
./review_site/bin/gerrit.sh restart
-
GMS等较大文件,给对应成员添加push权限,不会在Gerrit中有记录
修改对应Project的Access权限。
- 提交代码步骤
git add 文件名
git commit
git pull --rebase
git push origin HEAD:refs/for/master
- 采用HTTP认证,每次push都要输入用户名和密码
git config --global credential.helper store
- 采用SSH方式,只需要在Project地方点击下SSH