SVN报错:sqlite[S5]:database is locked

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

 

posted on 2017-06-15 16:16  不想下火车的人  阅读(26325)  评论(0编辑  收藏  举报

导航