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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章