gerrit 安装笔记
2017-08-31 22:59
148 查看
gerrit 安装笔记
安装没有太大的问题,网上大把的资料,这里记录下遇到的问题及解决办法。
1. Permission denied (publickey)
我安装完后配置好.ssh/config里的帐号和服务器地址,端口之类的之后,用ssh测试连通性时遇到这个错误,这时我可以用我的帐号登录WebUI的gerrit,并已经把我的id_rsa.pub放到SSH
Public Keys里面。
解决办法:
https://git.eclipse.org/r/Documentation/error-permission-denied.html
找到上面这个文章,里面第一点就说查看Settings -> Profile -> Username是否正确,这个Username就是ssh登录的用户名,但是我的这里为空。
我用的数据库是MySQL,用mysql的帐号密码登录:
mysql -uroot -p*****
use reviewdb;
select * from account_external_ids;
这时会显示如下
+------------+-----------------+----------+---------------+
| account_id | email_address | password | external_id |
+------------+-----------------+----------+---------------+
| 1 | email1@163.com | NULL | gerrit:test1 |
| 2 | email2@163.com | NULL | gerrit:test2 |
+------------+-----------------+----------+---------------+
在网上找的资料说这里的external_id还有一项username:test1之类的,这里没有,所有Profile里有空,手动添加:
insert into account_external_ids values ('1','NULL','NULL','username:test1');
再查看一下:
select * from account_external_ids;
+------------+-----------------+----------+---------------+
| account_id | email_address | password | external_id |
+------------+-----------------+----------+---------------+
| 1 | email1@163.com | NULL | gerrit:test1 |
| 2 | email2@163.com | NULL | gerrit:test2 |
| 2 | NULL | NULL | username:test1 |
+------------+-----------------+----------+---------------+
重新启动gerrit
./gerrit.sh restart
用test1登录后在Profile里的Username一项就会有test1,这时再用ssh测试就正常了。
ps:
修改的命令:update account_external_ids set external_id='username:*******'
where external_id='username:*****';
2. fatal: A Contributor Agreement must be completed before uploading:
这个问题是在Git push的时候出现的提示,我是这样解决的:
在etc/gerrit.config文件的
·auth]下加
contributorAgreements = true
添加后重启gerrit,在WebUI里找到 All-Projects -> General 里会有如下的选项:
把他改为FALSE之后就可以push了。
3. refs/heads/branch 和refs/for/branch的区别
后者不用说都知道是gerrit review用的,push到这个分支后在gerrit上就会有一个review出现,别人Review后才能提交到需要的分支。
前都其实就是正常push的分支,所以git push
origin HEAD:branch和git push origin HEAD:refs/heads/branch的结果是一样的。
修改All-Project的Access的相应Reference就可以修改相应的权限。
还有两个分支也说一下:
refs/meta/config: 这个分支是gerrit的权限配置分支,不是每个项目下面都有,All-Projects有这个分支,其他的项目从这个分支继承。
refs/tags/*:不用多说,打Tag用的。
4. 删除错误的Gerrit提交
有时在文件系统上删除了项目,又新建了一个同名的项目,但在Gerrit里还有没有Merge的Review,这时会Review又会出现错误。解决办法是在数据库里直接把对应的Change删除:
ssh server gerrit qsql
gerrit> delete from changes where change_id=1; //1为对应的change
5. 修改refs/meta/config
从Google镜像的Android仓库,有的项目里含有refs/meta/config这个分支,这个是git仓库配置用的,在gerrit里显示在Projects
-> Access里面,有时我们可能要对其做些修改。我们直接clone项目时这个分支不会同步,需要手动fetch
git fetch origin refs/meta/config:config
git checkout config
//modify the files
git push origin config:refs/meta/config
安装没有太大的问题,网上大把的资料,这里记录下遇到的问题及解决办法。
1. Permission denied (publickey)
我安装完后配置好.ssh/config里的帐号和服务器地址,端口之类的之后,用ssh测试连通性时遇到这个错误,这时我可以用我的帐号登录WebUI的gerrit,并已经把我的id_rsa.pub放到SSH
Public Keys里面。
解决办法:
https://git.eclipse.org/r/Documentation/error-permission-denied.html
找到上面这个文章,里面第一点就说查看Settings -> Profile -> Username是否正确,这个Username就是ssh登录的用户名,但是我的这里为空。
我用的数据库是MySQL,用mysql的帐号密码登录:
mysql -uroot -p*****
use reviewdb;
select * from account_external_ids;
这时会显示如下
+------------+-----------------+----------+---------------+
| account_id | email_address | password | external_id |
+------------+-----------------+----------+---------------+
| 1 | email1@163.com | NULL | gerrit:test1 |
| 2 | email2@163.com | NULL | gerrit:test2 |
+------------+-----------------+----------+---------------+
在网上找的资料说这里的external_id还有一项username:test1之类的,这里没有,所有Profile里有空,手动添加:
insert into account_external_ids values ('1','NULL','NULL','username:test1');
再查看一下:
select * from account_external_ids;
+------------+-----------------+----------+---------------+
| account_id | email_address | password | external_id |
+------------+-----------------+----------+---------------+
| 1 | email1@163.com | NULL | gerrit:test1 |
| 2 | email2@163.com | NULL | gerrit:test2 |
| 2 | NULL | NULL | username:test1 |
+------------+-----------------+----------+---------------+
重新启动gerrit
./gerrit.sh restart
用test1登录后在Profile里的Username一项就会有test1,这时再用ssh测试就正常了。
ps:
修改的命令:update account_external_ids set external_id='username:*******'
where external_id='username:*****';
2. fatal: A Contributor Agreement must be completed before uploading:
这个问题是在Git push的时候出现的提示,我是这样解决的:
在etc/gerrit.config文件的
·auth]下加
contributorAgreements = true
添加后重启gerrit,在WebUI里找到 All-Projects -> General 里会有如下的选项:
Contributor Agreements | |
Require a valid contributor agreement to upload: | TRUEFALSE |
3. refs/heads/branch 和refs/for/branch的区别
后者不用说都知道是gerrit review用的,push到这个分支后在gerrit上就会有一个review出现,别人Review后才能提交到需要的分支。
前都其实就是正常push的分支,所以git push
origin HEAD:branch和git push origin HEAD:refs/heads/branch的结果是一样的。
修改All-Project的Access的相应Reference就可以修改相应的权限。
还有两个分支也说一下:
refs/meta/config: 这个分支是gerrit的权限配置分支,不是每个项目下面都有,All-Projects有这个分支,其他的项目从这个分支继承。
refs/tags/*:不用多说,打Tag用的。
4. 删除错误的Gerrit提交
有时在文件系统上删除了项目,又新建了一个同名的项目,但在Gerrit里还有没有Merge的Review,这时会Review又会出现错误。解决办法是在数据库里直接把对应的Change删除:
ssh server gerrit qsql
gerrit> delete from changes where change_id=1; //1为对应的change
5. 修改refs/meta/config
从Google镜像的Android仓库,有的项目里含有refs/meta/config这个分支,这个是git仓库配置用的,在gerrit里显示在Projects
-> Access里面,有时我们可能要对其做些修改。我们直接clone项目时这个分支不会同步,需要手动fetch
git fetch origin refs/meta/config:config
git checkout config
//modify the files
git push origin config:refs/meta/config
相关文章推荐
- gerrit 安装笔记
- gerrit安装笔记
- Python MySQLdb Linux下安装笔记
- linux下安装memcacheq(mcq)全过程笔记
- CentOS 6.0 安装配置rails 2.3.11 + redmine 1.2.1 笔记
- Tomcat学习笔记 - 错误日志 - Tomcat安装版安装后第二次启动后闪退(转)-- javac不是内部或外部命令 -- 配置java环境教程
- Git学习笔记(1)——安装,配置,创建库,文件添加到库
- 学习笔记 《鸟哥的私房菜——软件安装:源码和Tarball》
- 阿里云使用笔记-Tomcat安装-centos7
- centos 7 min 编译安装php5.6+nginx1.7.5 笔记
- nginx 学习笔记(一)nginx 编译安装
- 学习Linux输入法安装的笔记(fc5)
- MongoDB学习笔记-01 服务安装
- linux下hadoop安装笔记
- hue安装及基本测试-笔记
- 【Ubuntu 笔记】ubuntu11.10上安装win7
- Easy Code (笔记)Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境)
- Redis安装及使用笔记
- 笔记:bower安装以及使用