1. 程式人生 > >eclipse cleanup svn時卡死或者失敗的一種解決方案

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分鐘左右,然後會提示 清理成功。

                   如圖所示:

                  

   (結束)