gerrit 删除废弃的提交(Abandoned commit change)

步骤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的版本号,但本人操作的时候无需此步骤



你可能感兴趣的:(gerrit 删除废弃的提交(Abandoned commit change))