svn報“Previous operation has not finished; run 'cleanup' if it was interrupted”的錯誤


一、敘述

今天需要更新接口文檔,所以就update了一下,結果報了如下錯誤:

     Error : Previous operation has not finished; run 'cleanup' if it was interrupted.
     Error : Please execute the 'Cleanup' command.
於是就去執行 Cleanup命令,但是又報錯了,說文檔拒絕訪問。
 
查到相關信息說針對新版的,要勾選break locks(解決方法之一)

勾選了以后發現,等待它執行了很久,還是給了報錯,依舊是文檔拒絕訪問。也許別人這樣做就成功了呢,反正我是沒成功。

下圖為在網上找的舊版svn的cleanUp界面,

二、解決方案(二)——使用db管理工具sqlite3

我們錯誤的提示是:“Previous operation has not finished”,出現這個問題的說法是,Svn的operation是存放在本地.svn\wc.db數據庫文件里面,即在內嵌數據庫wc.db的work_queue表中的,而operation沒有結束。所以我們需要使用sqlite來操作。

sqlite是一個常用的嵌入式數據庫,就是一個db文件。

1、在網上下載下載db管理工具sqlite3

2、將sqlite3.exe放置到對應cleanup異常的svn項目下的.svn文件夾下,如下圖:

需注意的是,.svn默認是隱藏的,我們需要勾選將其顯示出來。

3、在.svn目錄下打開cmd命令

4、輸入輸入sqlite3 wc.db

5、輸入 .table 查看所有表:會看到WORK_QUEUE

6、刪除WORK_QUEUE表:輸入delete from work_queue;

(在這里需注意要加分號!因為現在輸入的是sql語句,結尾要加;(分號)才算完整 ,否則就進入…>的狀態)

7、可以查看是否刪除成功:輸入select * from work_queue;

(我第一遍刪除后查看發現WORK_QUEUE依舊存在,所以就又執行了一次delete語句)

8、 最后在出現問題的目錄下,鼠標右鍵找到clean up,去執行Cleanup命令,如下圖。

9、clean up成功

 補充:其他解決方案(三)

看到有人使用sqlite清空這種方法不起作用,給出了另一個解決方案。

將.svn文件刪除,重新checkout工程下來。在這里可以保留當前已有的項目代碼,說svn在checkout過程中檢測到已有文件存在時不會再重新下載,下載速度會比較快一些。但是這樣感覺還是不太好,萬一checkout的文件出現問題,倒不如全部刪除項目,完完全全的checkout一份下來。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM