昨天下午修改幾個沖突的jar包后提交svn后報錯,接下來svn操作就失靈了,無論是clean up還是revert還是release lock都無濟於事。解決辦法:
首先下載sqlite3,我的是64位win7,無需去官網下載安裝,直接下載sqlite3.exe即可,下載鏈接為http://download.csdn.net/detail/whyzzj/6346529。sqlite3.exe需要放到wc.db的同一目錄才能用,這一點要注意。比如我的工程app_engine放在E盤的workspace里,而wc.db文件在appengine/.svn里(這里svn是隱藏目錄,需要先取消隱藏才能看到),那么把sqlite3.exe放到.svn里。
先看下sqlite數據庫里有沒有待處理的任務:
E:\workspace\app_engine\.svn>sqlite3 wc.db SQLite version 3.7.15.2 2013-01-09 11:53:05 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> select * from work_queue; sqlite>
上面這里看是沒有,有的話刪掉並退出:
sqlite> delete from work_queue; sqlite> .quit E:\workspace\app_engine\.svn>
這時再重新操作svn看看,如果還不行,那么需要重新生成wc.db
E:\workspace\app_engine\.svn>move wc.db wc.db.old E:\workspace\app_engine\.svn>sqlite3 wc.db.old SQLite version 3.7.15.2 2013-01-09 11:53:05 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .backup main wc.db sqlite> .exit E:\workspace\app_engine\.svn>
這里先把原來的wc.db重命名為wc.db.old,然后進入wc.db.old數據庫執行備份,備份文件名為wc.db,然后退出數據庫。這會兒再執行svn的update看看,應該不會再鎖數據庫了。如果還不行,那么我只能很遺憾的告訴你,我也沒轍了。
發生這種問題的原因往往是Eclipse的SVN和本地TortoiseSVN沖突了,比如你開着Eclipse時又用TortoiseSVN更新並有文件沖突,這是冒出這個報錯信息后先把Eclipse關了,用TortoiseSVN先clean再update一下,不行再用上面的方法。記得先關Eclipse。