svn報錯cleanup failed–previous operation has not finished; run cleanup if it was interrupte...

品讀夜的黑發表於2017-05-23

今天在svn提交的時候它卡頓了一下,我以為已經提交完了,就按了一下,結果就再也恢復不了,也繼續不了了...

報錯

cleanup failed–previous operation has not finished; run cleanup if it was interrupted

試過執行cleanup,結果也是失敗, 要更新先要cleanup,但是cleanup的失敗資訊又叫我cleanup……這是一個死迴圈!

感覺這是一個設計上的缺陷:使用工作佇列來儲存資料,後一個操作依賴於前一個操作的結果,一旦失敗就要使用cleanup操作。但是,當cleanup操作失敗的時候這個機制就陷入了死迴圈。

解決辦法就從它的資料庫中直接刪除工作佇列中的資料,注意是sqlite資料庫。

1.下載 sqlite3.exe 如果是mac系統 跳過這一步

2.找到專案的.svn結尾的檔案.(這個檔案是被隱藏的,一般就是在整個svn的專案根目錄).可以看到裡面有wc.db這樣一個檔案.

3.把下載好的sqlite3放到.svn同級目錄處.

4.開啟cmd,到.svn所在的這個路徑,然後執行 sqlite3 .svn/wc.db "select * from work_queue"

5.執行完以後可以看到cmd視窗裡會有一條條的記錄.這些就是svn執行了一半的佇列.

6.繼續執行 sqlite3 .svn/wc.db "delete from work_queue"

7.再執行一次 sqlite3 .svn/wc.db "select * from work_queue" ,看下是否還能檢索出佇列,如果沒有出現任何記錄,那表示已經刪除成功了.

8.回到svn裡出錯的資料夾,右鍵,執行clean up命令,就可以進行clean up了.

原文連結 : http://blog.woodbunny.com/post-168.html

相關文章