Gerrit,一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。它使用Git作为底层版本控制系统。 (from 百度百科)
$sudo useradd -m -d /home/gerrit2 -s /bin/bash gerrit2
$sudo su gerrit2
略。apt-get
#mysql -u root –p
Mysql>
#CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'secret';
#CREATE DATABASE reviewdb;
#ALTER DATABASE reviewdb charset=latin1;
#GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
#FLUSH PRIVILEGES;
$wget http://gerrit-releases.storage.googleapis.com/gerrit-2.7.war
$java -jar gerrit-2.7.war init -d review_site
参见http://www.infoq.com/cn/articles/Gerrit-jenkins-hudson/
Create '/home/gerrit2/review_site' [Y/n]? Y
Location of Git repositories [git]:
Database server type [h2]: mysql
Gerrit Code Review is not shipped with MySQL Connector/J 5.1.21
** This library is required for your configuration. **
Download and install it now [Y/n]? Y
Downloading http://repo2.maven.org/maven2/mysql/mysql-connector-java/5.1.21/mysql-connector-java-5.1.21.jar
Checksum mysql-connector-java-5.1.21.jar OK
Server hostname [localhost]:
Server port [(mysql default)]:
Database name [reviewdb]:
Database username [gerrit2]:
gerrit2's password : secret
confirm password :
SMTP server hostname [localhost]:
SMTP server port [(default)]:
SMTP encryption [NONE/?]:
SMTP username :
更具体是进行初始化
$ ./review_site/bin/gerrit.sh start
默认端口号:8080
默认情况下是纯白色的,不美观可以对 review_site/etc/gerrit.config 修改,然后重启服务,下面是一个颜色配置模板:
[theme]
backgroundColor = FCFEEF
textColor = 000000
trimColor = D4E9A9
selectionColor = FFFFCC
topMenuColor = D4E9A9
changeTableOutdatedColor = F08080
[theme "signed-in"]
backgroundColor = FCFEEF
textColor = 000000
trimColor = D4E9A9
selectionColor = FFFFCC
topMenuColor = D4E9A9
changeTableOutdatedColor = F08080
更多信息,索引 https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#_a_id_theme_a_section_theme
ssh -p 29418 username@webhost 测试gerrit是否正常运行,根据 http://www.infoq.com/cn/articles/Gerrit-jenkins-hudson/ 修改相关ssh配置,成功后会显示如下信息:
**** Welcome to Gerrit Code Review ****
Hi demo, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://demo@localhost:29418/REPOSITORY_NAME.git
Connection to localhost closed.
创建项目, 克隆病推送代码!
ssh -p 29418 admin@localhost gerrit create-project --name example.git
注意: 在gerrit系统上第一个注册的人自动成为管理员,只有管理员才有创建project权限
GitHub is a resource for managing Git code repositories and interacting with other developers. Jenkins is used to continuously test all of the components of OpenStack to ensure functionality and to verify that each change to the code base works as intended. Gerrit is a code review system originally developed for use by the Android Open Source Project and allows us to build a workflow where every change is peer-reviewed and tested by Jenkins before being merged into the main repository.
根据https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger配置jenkins以及Gerrit
jenkins + github http://blog.csdn.net/john_cdy/article/details/7738393
java -jar jenkins.war --httpPort=$PORT --httpListenAddress=$HTTP_HOST
how to use jenkins: https://wiki.jenkins-ci.org/display/JENKINS/Use+Jenkins
http://fourkitchens.com/blog/2011/09/20/trigger-jenkins-builds-pushing-github
Jenkins 学习:http://www.cnblogs.com/itech/archive/2011/11/23/2260009.html
Gerrit 学习:http://ci.openstack.org/gerrit.html (介绍了OpenStack源代码开发维护更新流程!)
Gerrit introduction: http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/intro-quick.html
Gerrit installation: http://gerrit.googlecode.com/svn/documentation/2.1.6/install.html
Git、Gerrit与Jenkins/Hudson CI服务器:
http://www.infoq.com/cn/articles/Gerrit-jenkins-hudson/
GerritJenkinsGithub: https://wiki.openstack.org/wiki/GerritJenkinsGithub
Ideas and Actions: https://groups.google.com/forum/#!msg/repo-discuss/rersrCtdEiY/usAodLofFo8J
Gerrit 工作流: https://wiki.openstack.org/wiki/GerritWorkflow
git diff 的用法: http://blog.sina.com.cn/s/blog_40e9d4dd0100xi8p.html
git rebase用法: http://www.cnblogs.com/kym/archive/2010/08/12/1797937.html
Gerrit 安装:http://ci.openstack.org/gerrit.html
图解GIT: http://nettedfish.sinaapp.com/blog/2013/08/05/deep-into-git-with-diagrams/