SVN cleanup操做反覆失敗解決辦法 (轉載)

SVN cleanup操做反覆失敗解決辦法 2014-11-21 11:12:24html

原創做品,容許轉載,轉載時請務必以超連接形式標明文章 原始出處 、做者信息和本聲明。不然將追究法律責任。 http://flyingcat2013.blog.51cto.com/7061638/1580692

今天在更新項目的時候遇到一個問題,按慣例要cleanup才能從新更新。可是很不幸,在cleanup的時候又遇到了問題!sql

1
    svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted

要更新先要cleanup,可是cleanup的失敗信息又叫我cleanup……這是一個死循環!本着「內事不決問百度,外事不決問Google」的原則,終於找到一個解決辦法,參見這裏:http://www.anujvarma.com/svn-cleanup-failedprevious-operation-has-not-finished-run-cleanup-if-it-was-interrupted/
數據庫

Usually, an svn cleanup fixes most issues with tortoise svn. However, I ran into an issue which caused me some grief.
The specific error I was seeing:
Previous operation has not finished; run 'cleanup' if it was interrupted

Solution:

 Somehow, svn is stuck on the previous operation. We need to remove this operation from it’s ‘work queue’.
The data is stored in the wc.db sqllite database in the offending folder.

1. Install sqllite (32 bit binary for windows) from herewindows

2. sqlite .svn/wc.db 「select * from work_queue」svn

The SELECT should show you your offending folder/file as part of the work queue. What you need to do is delete this item from the work queue.工具

3. sqlite .svn/wc.db 「delete from work_queue」this

That’s it. Now, you can run cleanup again – and it should work. Or you can proceed directly to the task you were doing before being prompted to run cleanup (adding a new file etc.)spa

Also, svn.exe (a command line tool) is part of the Tortoise installer – but is unchecked for some reason. Just run the installer again, choose ‘modify’ and select the ‘command line tools’.設計

感受這是一個設計上的缺陷:使用工做隊列來保存數據,後一個操做依賴於前一個操做的結果,一旦失敗就要使用cleanup操做。可是,當cleanup操做失敗的時候這個機制就陷入了死循環。解決辦法就從它的數據庫中直接刪除工做隊列中的數據,注意是sqlite數據庫。code

因爲正在作Android開發,SDK中已經自帶了sqlite3.exe工具,所以使用起來很方便。到項目的.svn目錄下找到wc.db文件,使用sqlite3打開它,執行如下命令:

1
   delete  from  work_queue;

完畢後關閉數據庫,從新打開項目,便可恢復正常操做。

本文出自 「飛翔的貓咪」 博客,請務必保留此出處http://flyingcat2013.blog.51cto.com/7061638/1580692

相關文章
相關標籤/搜索