今天用svn更新项目的时候,提示“sqlite database disk image is malformed”。之前svn更新出错的时候,会清除一下sqlite里面的两张表,就先清了一下,但是并没有用。
sqlite3.exe 放到 .svn 目录下,在.svn目录下打开命令行,敲入命令:
sqlite3.exe wc.db。
这时,进到了sqlite的命令行环境,可以操作该数据库了,首先我们输入命令:.tables,将该数据库中的表都显示出来,我们需要关注的是 wc_lock 和 work_queue,因为关于操作的cleanup和lock的信息是保存在这2个表里。
只要把这2张表清空即可:
delete from wc_lock;
delete from work_queue;
后来在网上找到了另外一个办法。
对跟踪存储库的sqite数据库(/.svn/wc.db)进行完整性检查:
sqlite3 .svn/wc.db "pragma integrity_check"
这应该会报告一些错误。
然后,您可以通过以下操作来清理它们:
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
执行完之后,再对svn下出错的文件夹进行更新操作,直接把出错的文件提示了出来,删掉错误文件,重新更新一下就可以了。
https://cloud.tencent.com/developer/ask/57481