Gerrit安裝和使用說明
搞了幾天,資料也查了不少,終於磨出來了。有什么不對的地方,大家及時提出來。。。,開始吧
系統 |
Centos6.5 x64 |
內存 |
2G |
硬盤 |
20G |
數據庫 |
Mysql5.1 |
服務器 |
Apache2.2 |
准備
#yum update #yum install git #yum install java-1.7.0-openjdk.x86_64 #yum install mysql-server #service mysqld start
配置mysql
#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;
安裝gerrit
安裝文件見【附件】
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
配置Apache
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
Gerrit的使用
創建項目
創建branch
配置項目權限
項目評審過程中,需要幾個條件,代碼才能最終提交到分支
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