svn“Previous operation has not finished; run 'cleanup' if it was interrupted“報錯的解決方法

問題描述

今天用svn客服端tortoisesvn更新項目的時候,一直提示“Previous operation has not finished; run ‘cleanup’ if it was interrupted” ,如下圖所示
這裏寫圖片描述

可能原因是,你在執行更新操作的時候,此時你打開了被更新的文件,導致無法更新文件內容

網上主流兩種解決方法,我這邊試過方法1(推薦),比較簡單,方法2應該也是有用的,大家根據實際情況都可以試試

解決方法

方法1(推薦)

1、win+r -> 輸入cmd 命令

2、進入項目的根目錄 ,輸入svn cleanup 命令
這裏寫圖片描述
3、進入項目的根目錄下F:\sunlands\svn\WechatManagement\document>,再次點擊右鍵,選擇SVN Update 選項即可

方法2

Svn的operation是存放在“work queue’“裏的。而“work queue’是在內嵌數據庫wc.db的work_queue表中的。看看work_queue表中放了些什麼,再做處理。

  1. 內嵌數據庫一般是用sqlite進行輕量級管理的。網上可以下到sqlite-shell-win32-x86: sqlite3.exe

  2. 爲了方便命令行執行,將sqlite3.exe放到svn 項目的主目錄下,和.svn目錄同級下。

  3. 執行 sqlite3 .svn/wc.db “select * from work_queue”.看到有4條記錄。就是剛纔我執行的一些操作。

    226539|(sync-file-flags 93目錄名 文件名)

    226540|(file-remove 21 .svn/tmp/svn-7B43C232)

    226541|(sync-file-flags 目錄名 文件名)

    226542|(file-remove 21 .svn/tmp/svn-7B48224E)

  4. 執行 sqlite3 .svn/wc.db “delete from work_queue”. 把隊列清空。

  5. 執行 sqlite3 .svn/wc.db “select * from work_queue”. 確認一下是否已經清空隊列,發現已經沒有記錄顯示,說明已經清空了。

  6. 最後再試一下,看是否可以 clean up了。果然成功了。

參考博客

https://blog.csdn.net/superch0054/article/details/38668017

發佈了121 篇原創文章 · 獲贊 574 · 訪問量 66萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章