eclipse cleanup svn時卡死或者失敗的一種解決方案
經常遇到一種情況,在進行pull或者push時,svn報錯,提示你應該cleanup一下,但當你cleanup時,要麼就卡死,要麼就報錯,說是在cleanup過程中需要等待其他操作。這種情況可能是由於,以前的某次SVN操作在沒有執行完就被強行終止了,導致svn會根據記錄的操作嘗試恢復原來的操作,或者revert到失敗操作之前的狀態。
網上查了寫資料最後把目標鎖定在專案檔案.svn裡的wc.db檔案上。
這裡面的work_queue表中是用來記錄svn.的操作佇列的。標題描述的問題,很大一種可能就是在強行終止svn操作時該表出現了問題。所以
解決方法:
step1: 到 sqlite官網 (http://www.sqlite.org/download.html) 下載 sqlite3.exe
找到 Precompiled Binaries for Windows,點選 sqlite-shell-win32-x86-3080500.zip 下載,300KB左右
step2: 將下載到的 sqlite3.exe 檔案複製到 本地磁碟的某個臨時目錄下 (我的svn原始碼放在共享磁碟中,發現 sqlite老是找不到 svn的 wc.db檔案),
step3: 然後 設定 svn原始碼 資料夾 及檔案 顯示 所有檔案(包括隱藏檔案),會發現 .svn/wc.db 檔案, 將 其複製到 step2的臨時目錄下
step4: 開始 -> 執行 -> 開啟 cmd命令
開啟 wc.db
執行 delete from work_queue;
如圖所示:
step 5: 將 wc.db 覆蓋到 svn原始碼目錄的 .svn目錄下
step 6: 對 svn原始碼目錄 右鍵, clean up, 稍等1至5分鐘左右,然後會提示 清理成功。
如圖所示:
(結束)