昨天下午修改几个冲突的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。