步驟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的版本號,但本人操作的時候無需此步驟