Git+gerrit+git review 集成
Git review 及其安装:https://www.jianshu.com/p/65a9c392ee25 使用 git review时报错:stdout = self.stdout.read() UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa2 in position 12 解决方法:https://blog..net/myli_binbin/article/details/108152690
git review 命令需要 .gitreview 文件存在于项目目录里。 用 gerrit用户添加.gitreview 文件 [root@115]# su - gerrit [gerrit@115]$ git clone git@103.10.86.30:dev-group/test-project1.git [gerrit@115]$ cd test-project1 [gerrit@115]$ vim .gitreview
[gerrit] host=103.10.86.30 port=29418 project=test-project1.git 添加.gitreview到版本库 [gerrit@115] g i t a d d . g i t r e v i e w [ g e r r i t @ 115 ] git add .gitreview [gerrit@115] gitadd.gitreview[gerrit@115]git config --global user.name ‘gerrit’ [gerrit@115] g i t c o n f i g − − g l o b a l u s e r . e m a i l ′ g e r r i t @ x q s h i j i e . c n ′ [ g e r r i t @ 115 ] git config --global user.email gerrit@xqshijie.cn [gerrit@115] gitconfig−−globaluser.email′gerrit@xqshijie.cn′[gerrit@115]git commit .gitreview -m ‘add .gitreview file by gerrit.’ [gerrit@115]$git push origin master
gerrit安装: 中间涉及到几个服务间多次ssh密钥传递: 在gerrit中 期间可以用 ssh -p 29418 admin(gerrit上的用户名)@ip地址测试能否成功连接。 我在此期间碰到如下问题:【@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is SHA256:YuegEmhDUl3cBgb223eNwR95Qval9vUa6xBXGP+FFHU. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /root/.ssh/known_hosts:1 ECDSA host key for [192.168.221.133]:29418 has changed and you have requested strict checking. Host key verification failed. 】 解决:【https://blog..net/qiuziqiqi/article/details/96874097】
在gerrit 中的问题: 【问题一】:git review 之后,用户只能查看,没有权限submit. 解决方法:
但是我的版本是3.0,操作上有些许不同,主要意思就是,gerrit 中赋予权限只能以group为单位,传递给用户。 以Administrators为例,需要给其添加submit的权限: 点击gerrit: 点击Access 点击All-Projects: 需要什么权限就add 什么 ,然后加入group 即可。 【问题2】:submit后项目就提交到了gerrit ,但是我们想要让gerrit仓库更新之后自动将项目提交到gitlab中。
Gerrit test-project1 项目仓库有变化时自动同步到 Gitlab 的 test-project1 项目仓库中。 Gerrit 自带一个 Replication 功能,同时我们在安装 Gerrit 时候默认安装了这个 Plugin。
现在只需要添加一个 replication.config 给 Gerrit [gerrit@115]$ cd /home/gerrit/gerrit_site/etc/ [gerrit@115]$ vim replication.config
[remote “test-project1”] projects = test-project1 url = git@103.10.86.30:dev-group/test-project1.git push = +refs/heads/:refs/heads/ push = +refs/tags/:refs/tags/ push = +refs/changes/:refs/changes/ threads = 3 这里需要传公钥到gitlab中,所以建议还是先ssh -p 命令检测是否连接。
