問題描述:svn執行clean up命令時報錯“Previous operation has not finished; run 'cleanup' if it was interrupted”。無論你到那個父層次的目錄執行“clean up “,都是報一樣的錯。執行cleanup時候,提示要cleanup。看來是進入死循環了。
背景知識:Svn的operation是存放在“work queue’“里的。而“work queue’是在內嵌數據庫wc.db的work_queue表中的。因此看看work_queue表中放了些什么,再做處理。
問題解決的步驟:
(1)、上文說到需要看下work_queue里面在做什么,因此需要一個能夠查看work_queue的工具sqlite,關於sqlite可以自行百度,這里不做贅述。官網下載地址:http://www.sqlite.org/download.html 建議選擇sqlite3.exe 下載,如下圖所示:
(2)、找到你的svn checkout的主目錄下的 .svn 文件夾,打開文件夾,可以找到wc.db文件。
(3)、將wc.db 文件和剛剛下載的sqlite3放到一個臨時的目錄下(這里做一個備份,防止直接操作wc.db文件導致wc.db文件損壞了)。
(4)、打開命令行,並將命令行目錄切換到剛剛建的臨時目錄,如下圖所示:
(5)、執行如下命令:
sqlite3 wc.db; // 打開wc.db
sqlite3 select * from work_queue; // 查看當前work_queue中的任務
sqlite3 delete from work_queue; // 講當前work_queue中任務刪除
(6)、如果上述命令都成功執行,那么恭喜,只需要將wc.db 覆蓋.svn目錄下的wc.db ,然后再次執行 cleanup操作就可以了