搞了几天,资料也查了很多,终于磨出来了。有什么不对的地方,你们及时提出来。。。,开始吧java
系统mysql |
Centos6.5 x64linux |
内存git |
2Gweb |
硬盘sql |
20G数据库 |
数据库apache |
Mysql5.1服务器 |
服务器ssh |
Apache2.2 |
#yum update #yum install git #yum install java-1.7.0-openjdk.x86_64 #yum install mysql-server #service mysqld start
#mysql –u root -> CREATE USER 'gerrit'@'localhost' IDENTIFIED BY '123'; -> CREATE DATABASE reviewdb; -> ALTER DATABASE reviewdb charset=latin1; -> GRANT ALL ON reviewdb.* TO 'gerrit'@'localhost'; -> FLUSH PRIVILEGES;
安装文件见【附件】
1)一直选择默认enter(只有在选择数据库时选择mysql,在选择验证方式时选http)
#java -jar gerrit-full-2.5.war init -d /var/gerrit-site
2)Gerrit配置文件以下:(默认路径:/var/gerrit-site/etc/gerrit.conf)
[gerrit] basePath = git canonicalWebUrl = http://192.168.1.78:8081/ [database] type = MYSQL hostname = localhost database = reviewdb username = gerrit [auth] type = HTTP [sendemail] smtpServer = localhost [container] user = root javaHome = /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre [sshd] listenAddress = *:29418 [httpd] listenUrl = proxy-http://192.168.1.78:8081/ [cache] directory = cache
3 ) 添加用户,能够添加多个,这个用户是做为web页面的登录用户使用的
# touch /var/gerrit-site/passwd # htpasswd /var/gerrit-site/passwd [new-user-name]
4) 启动、关闭、重启gerrit
# /var/gerrit-site/bin/gerrit.sh start # /var/gerrit-site/bin/gerrit.sh stop # /var/gerrit-site/bin/gerrit.sh restart
1) 配置反向代理
/etc/httpd/conf/httpd.conf … <VirtualHost *:80> ServerName localhost ProxyRequests Off ProxyVia Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> <Location /login/> AuthType Basic AuthName "Gerrit Code Review" AuthBasicProvider file AuthUserFile /var/gerrit-site/password Require valid-user </Location> ProxyPass / http://192.168.1.78:8081/ </VirtualHost>
2)关闭selinux,需重启
# vi /etc/selinux/config … SELINUX=disable …
或者,本次有效
# setenforce 0
3) 设置权限
# chown –R apache:apache /var/gerrit-site
4) 关闭防火墙,让局域网用户访问
# service iptables stop
5) 重启httpd服务
# service httpd restart
项目评审过程当中,须要几个条件,代码才能最终提交到分支
l Review >=+2
l Verify >=+1
因此若是配置为每人评审最多只能+1时,则必须最少两人才能完成评审过程,固然也可让一个用户组能够一次性review +2
配置项目权限时须要根据须要进行配置,选好拥有权限的用户组
Git clone http://[ip]:[port]/[project-name].git
如git clone http://192.168.1.78/hello.git
此处提交代码的位置有点奇怪:HEAD:refs/for/master,实际上是gerrit规定的方式,最后的master是分支名称
提交代码的快捷方式:
[remote "review"]
pushurl = http://192.168.1.78/hello.git
push = HEAD:refs/for/master
这样之后就直接:
# git push review
其中用户密码在webui页面右上角的“setting”à”HTTP Password”
此时能够看到页面有“Review”按钮,点击便可评审代码
此时能够看到用户一次评审只能+1 这是在项目的access中设置的,此项目评审结果必须>=2才能够提交,因此必须由两个用户分别评审
待知足gerrit对项目的要求(review >=2 verify >=1)后,页面中会出现“submit patch set 1”的按钮,点击将分支合并到主干中
用户会发现,提交完毕后,“revert change”按钮出现,也就是能够revert刚才的提交动做
此时在其余地方从新获取项目的分支代码,便可看到代码更新过了
git pull origin master