步骤1 gerrit数据库访问授权
首先在gerrit站点确认project config里是否对Administrator组有访问gerrit数据库的权限
使用Administrator组的账户登陆gerrit网站,然后点击Projects->List,选择All-Projects项目,进入之后点edit config
确保在[capability]节点下有
accessDatabase = group Administrators
修改完之后,需要点击Save,然后就像审核其他代码的提交一样,找到My->Open下面的Edit Project Config,点击Publish Edit,之后点击Publish,再code review,submit
到此,对Administrator组的gerrit数据库授权完成,这里无需重启gerrit服务
步骤2 ssh秘钥设置及连接
如果拉取提交代码的时候,已经设置过SSH key,则跳过此步骤
否则找到已登录的用户的Settings界面,Profile下的Username就是SSH登陆的用户名,
打开SSH Public Keys,点击Add Key ...,然后把自己的(~/.ssh/id_rsa.pub)Public Key文本放进去,
注意,Gerrit只支持
ssh-rsa和ssh-dss两种形式的key,可以参考
https://review.openstack.org/Documentation/user-upload.html#configure_ssh
gerrit服务器的ssh端口一般是29418
之后可以用ssh客户端进行连接(Windows下可以使用git自带的git bash进行连接):
ssh -p 29418 Username@gerrithost gerrit gsql
如果出现欢迎字符则表示成功
Welcome to Gerrit Code Review 2.11.5
(H2 1.3.174 (2013-10-19))
Type '\h' for help. Type '\r' to clear the buffer.
gerrit>
步骤3 更新gerrit数据库的废弃记录
在步骤3的gerrit数据库命令行中,输入如下命令,注意可能需要把所有的change_id,和patch_sets 列表保存出来,便于后面的补充处理
update changes set status='d' where STATUS ='A';
update patch_sets set draft='Y' where in (select change_id from changes where STATUS ='A');
\q
退出gerrit数据库命令行
然后通过如下命令刷新缓存
ssh -p 29418
Username
@gerrithost gerrit flush-caches
步骤4 停止gerrit服务,并重建索引
./gerrit.sh stop
java -jar gerrit.war的路径 reindex -d gerrit网站的根目录
之后启动gerrit服务
./gerrit.sh start
至此,所有废弃的提交记录已经全部从gerrit网站上消失了
补充 review处理
对所有的废弃的change_id,可能需要通过review处理来删除掉记录
ssh -p 29418 Username@gerrithost gerrit change_id,1
其中的1是patch的版本号,但本人操作的时候无需此步骤