概述
这里的工程创建,指的是在gerrit上创建工程,使得gerrit和gitlab建立对应关系。
流程
(1)在gerrit上创建同名项目
以gitlab上的gerrit-test-2项目为例,需要在gerrit上也创建同名项目
权限继承自“All-Projects”(因为之前对All-Projects设置了code review和verified)
如下图所示:
(注:项目名约定带分组,如openstack-dev/nova,上图没有带分组不符合规范,分组和gitlab上的分组保持一致即可)
(2)gerrit后台克隆工程
cd ~/gerrit_dir/
git clone --bare git@¥.¥.¥.¥:yp/gerrit-test-2.git
(注意替换为gitlab的IP) (注1:需要用gerrit用户操作,即su gerrit) (注2:实际路径为/home/gerrit/gerrit_dir) (注3:需要把第一步生成的对应的默认工程目录删掉 rm -rf gerrit-test-2,然后再clone) (注4:注意参数–bare)
(3)配置replication.config文件
追加对应的配置项,这里依gerrit-test-2项目为例
vim ~/gerrit_dir/etc/replication.config
[remote "gerrit-test-2"]
projects = gerrit-test-2
url = git@¥.¥.¥.¥:yp/gerrit-test-2.git (注意替换为gitlab的IP)
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
threads = 1
如果之前已经提交过代码(走通了《提交代码》那篇博文),加载下钩子,即可提交代码了。
首次提交代码到gerrit新项目时,需要添加新的钩子,因为默认的web hook在Gitlab上 所以需要将钩子改到Gerrit上
gitdir=$(git rev-parse --git-dir);
scp -p -P 29418 pengyuan@*.*.*.*:hooks/commit-msg ${gitdir}/hooks/
(注意替为gerrit的IP 和你的账号名称)