1、安装ubuntu的时候可选包要选择上openSSH,如果没有选择的话,系统安装完成后手工安装openSSH服务;
2、(挪至第7步)
3、安装java 运行环境,大概需要100M的内容:
sudo apt-get install openjdk-6-jre-headless4、安装邮件服务:
postfixsudo apt-get install postfix注意,安装过程中会提示输入主机名,gemfield此处输入的是 civilnet.cn。
5、安装git服务
sudo aptitude install git-core git-doc6、创建gerrit用户:
sudo adduser gerritsudo su gerrit
cd ~
7、下载gerrit包,这次编辑时gerrit的版本是2.8.0(最新版本)
8、安装gerrit:
java -jar gerrit-2.8.war init -d review_site9、安装过程中会出现交互式的提问,除非gemfield本文明确指定,否则都是默认值。
10、配置完上面的步骤后,gerrit服务会自动启动。以后可以使用如下命令手工启动:/home/gerrit/review_site/bin/gerrit.sh start
11、通过如下步骤设置gerrit服务开机自启动:
sudo ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.shsduo ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerrit
sduo ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit
服务自动启动脚本/etc/init.d/gerrit.sh需要通过/etc/default/gerritcodereview文件来提供一些配置。该文件的内容为:
GERRIT_SITE=/home/gerrit/review_site
NO_START=0
12、配置apache的反向代理:
ProxyRequests OffProxyVia Off
ProxyPreserveHost on
Order deny,allow
Allow from all
ProxyPass /code/ http://civilnet.cn:8080/
AuthType Basic
AuthName "CivilNet Code Review"
Require valid-user
AuthUserFile /home/gerrit/review_site/etc/gerrit.password
13、添加http认证用户(e.g. gemfield):
htpasswd -m /home/gerrit/review_site/etc/gerrit.password gemfieldNew password:
Re-type new password:
14、可以通过浏览器访问 http://civilnet.cn/code/ 来使用gerrit了。
15、第一个注册的人就是管理员哦,比如gemfield。
16、现在你也可以去 /home/gerrit/review_site/etc/gerrit.config文件中查看刚才的配置内容了。
登录 gerrit ->激活邮箱 ->获取并保存 http credentials(提交时要用)
后续 Push, Review, Verify, Submit, 接收通知 等都需要邮箱的支持。
http 方式 Pull, Push 时用。
Pull ->Commit ->Push(带上Change-Id)
BROWSE ->Repositories。
仓库地址在仓库详情页。
Attention
Pull 时选择 "Clone with commit-msg hook" 方式以便 拿到 commit-msg (.git/hooks/commit-msg) 。
确保 commit footer 有 Change-Id 信息。
Change-Id 可从通过 commit-msg (.git/hooks/commit-msg) 生成。
Strongly recommended:
只需确保项目目录(.git/hooks/)下有 commit-msg 脚本,再配合对应 的 gerrit 插件即可在 Commit 时完成 Change-Id 的自动生成。
Idea, Eclipse 都有相应的 gerrit 插件。
用于标识 commit。
Have a look
YOUR ->Changes ->选择对应的 Change ->REPLY
对于一些进阶 *** 作或部分问题的处理,要求对 git 有一定的程度的深入了解。
rebase(变基), merge
对前一次 commit 进行微调(打补丁),不产生新的 Commit。
可简单理解为: pull = fetch + merge
参考文档 git reset
一些常见的问题及对应的解决方案。
此种情况多是由于 本地 git 配置 name, email 与 gerrit 账户名, 注册邮箱不符。
解决方案:查看并修改 git 配置属性 name, email
问题分析
这个提示表示没有新的提交。Gerrit审核根据commit
id和changeId来判断是否是新的提交。
情况一:如果确实需要提交,比如在初次建立新的分支的时候,两个分支的内容完全一模一样
解决办法:
通过git commit –amend生成新的changeId。
情况二: 合并时,合并的那些历史的 commit 节点,在 gerrit 上都已经评审过了,都是已有的 change 单,所以 gerrit 认为没有新的提交,就不让你提交评审。
解决办法:
在 git merge 的时候,加上 --no-ff 参数,是为了让它生成一个新的 commit,这样就可以提交了~(不过生成的 gerrit change 是看不到改动信息的
结合 Idea gerrit 插件的使用:
解决办法:
问题描述:相应分支挂起(可简单理解为分支状态异常)
解决方案:
在对应仓库下执行以下命令
以下是 rebase 方式(推荐)
以 gitlab 为例。
以管理员身份登录 gerrit ->创建项目仓库 repo_demo ->进入 gerrit_home/<git_dir>以 gitlab 中同名项目覆盖之(即删除 repo_demo
->再从 gitlab 克隆同名项目)
第一次调用git commit , 之后通过git commit --amend -m' ' 命令来对前面的提交进行修订,确保只产生一个commit和与之对应的change id然后再git push review
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)