参考资料
http://www.linuxso.com/linuxpeixun/15542.html
http://www.infoq.com/cn/articles/Gerrit-jenkins-hudson
http://www.worldhello.net/2010/11/10/2059.html
http://gerrit-documentation.googlecode.com/svn/Documentation/2.4.2/index.html
《Git权威指南-第5篇-第32章-Gerrit》![](http://pubimage.360doc.com/wz/default.gif)
一、创建gerrit服务器
$ java -jar gerrit-2.4.1.war init -d review_site
注意选择http
Authentication method [OPENID/?]: http
Starting Gerrit Code Review: OK
Waiting for server to start ... OK
Opening browser ...
二、设置apache2代理
$ sudo apt-get install apache2
我在安装过程中,由于我的ubuntu系统出现点问题,没有完全安装成功,但我以为成功,导致在apache2配置中花费大量时间。Apache2安装成功后,需要做如下配置修改(参考资料)
1、httpd.conf
$ sudo gedit /etc/apache2/httpd.conf
(1)、AuthUserFile
需要通过htpasswd创建passwords
$ htpasswd -c /home/XXXX/review_site/etc/passwords "gerrit_manager"
待gerrit服务器配置成功后,可使用gerrit_manager登录
(2)、ProxyPass
需要跟gerrit配置中的地址一致。
$ cat /review_site/etc/gerrit.config
2、启动apache2
sudo /etc/init.d/apache2 start
sudo /etc/init.d/apache2 stop
sudo service apache2 restart
启动时提示ProxyRequests等错误,则需要激活代理模块。
sudo ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf
sudo ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load
sudo ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/proxy_http.load
创建此些链接时,如失败,则需要检查ubuntu系统,应该为apache2安装过程出现错误。卸载,后重新安装。
启动apache2成功后,再进入http://192.168.X.X/,提示输入用户名和密码,此时可输入在passwords中创建的用户名和密码,此用户为gerrit服务器的管理者。三、创建gerrit用户
1、加入ssh key。
登录成功后,需要setting加入ssh key。然后查看用户ssh连接性
$ ssh -p 29418 gerrit_manager@192.168.X.X
**** Welcome to Gerrit Code Review ****
Hi gerrit manager, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://gerrit_manager@192.168.X.X:29418/REPOSITORY_NAME.git
Connection to 192.168.X.X closed.
这里的gerrit_manager@192.168.X.X即为gerrit登录用户名@gerrit服务器地址。至此,gerrit管理者连接成功。
2、注册邮箱(用于提交代码自动发送邮件)
右上角Anonymous coward(1000000)表示为当前用户的用户名和权限,1000000表示为管理员。用户名和邮箱可在settingà Contact Infomation修改。
修改full name后,右上角的Anonymous coward将变成修改后的名字。注意需要registert email,但经常提示application error,这个可以通过修改数据库解决。这个email很重要,需要跟.gitconfig中的一样,否则提交代码时会提示失败。
(1)、.gitconfig中用户名和邮箱查看和修改
.gitconfig中用户名和邮箱是git创建时生成的,可以修改。
$ git config --global user.name "name"
$ git config --global user.email "mail"
(2)、gerrit数据库修改
3、用户组和用户权限管理
(1)、创建用户组,增加用户组成员。四、创建、导入git项目并提交修改
创建gerrit服务器时,项目存在目录为/review_site/git,默认有All-Projects.git项目。
如果已有项目,可以直接复制到/review_site/git目录。
1、创建git项目。
创建新项目并提交,很多资料都有详细介绍(http://www.infoq.com/cn/articles/Gerrit-jenkins-hudson),如果用户注册邮箱和git邮箱一致,基本没有其他问题。
$ git push origin
Counting objects: 3, done.
Writing objects: 100% (3/3), 216 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Processing changes: new: 1, done
To ssh://gerrit_manager@192.168.X.X:29418/example.git
* [new branch] master -> refs/for/master
2、导入已有repo项目
由于安装的gerrit版本有所不同,网上介绍的方法适用于旧版本,新版本(2.4.1)可直接复制,但记得重启gerrit。
呼,这个问题花费了我三分二的时间,结果竟然只是复制重启,我汗。
五、注意点
1、登录成功后重定向循环问题。
此问题不是我亲自解决,只是我看最后结果做出的猜想
(1)、删除/etc/apache2/httpd.conf的修改。
(2)、修改gerrit.config如下
[gerrit]
basePath = git
canonicalWebUrl = http://192.168.X.X/
[database]
type = H2
database = db/ReviewDB
[auth]
type = HTTP
[sendemail]
smtpServer = localhost
smtpServerPort = 25
smtpUser = root
[container]
user = root
javaHome = /usr/lib/jvm/java-6-sun-1.6.0.22/jre
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = proxy-http://*:8081/
[cache]
directory = cache
2、sendmail配置
此问题也不是我亲自解决。Sendmail如没有配置,registemail会提示失败,提交审核结果也不会自动发送邮件。其他功能是否有影响,暂不清楚。
3、.shh/.config配置(非必须)
Host 192.168.X.X
user gerrit_manager
Port 29418
Hostname 192.168.X.X
IdentityFile ~/.ssh/id_rsa
此配置在连接服务器时,可以由ssh://gerrit_manager@192.168.X.X:29418/.........
省略为ssh://192.168.X.X:29418/.........
以上为我个人拙见,有错之处,欢迎指正,谢谢!