SVN清理失败无法更新
今天使用SVN更新代码时发现更新速度忒慢,于是关闭了更新操作,后再次更新目录A时发现文件被锁住了(本人试图将目录A下的文件更新到主版本,发现目录A下的文件已经被X君提交到主版本了),提示需要cleanup,照做,再次更新,发现还是有问题,不能正常更新,彼时正忙,比较恼火。
搜索后发现一解决办法,使用sqlite删除之前中断的操作
步骤如下:
1. 将下载好的sqlite3.exe复制到svn文件目录,会发现 .svn/wc.db文件这个文件路径
2.清除之前的操作 sqlite3 .svn/wc.db "select * from work_queue"
,此时会看到很多条记录
3. sqlite3 .svn/wc.db "delete from work_queue"
4. 操作完毕后,至svn项目文件里面执行cleanup,此时对文件进行更新及提交都没问题了。
猜测work_queue是当前的用户的操作队列,用于记录用户对svn文件的操作记录(操作成功与否)
查看WORK_QUEUE的表结构):select * from sqlite_master where type="table" and name="WORK_QUEUE";
输出结果:table|WORK_QUEUE|WORK_QUEUE|18|CREATE TABLE WORK_QUEUE ( id INTEGER PRIMARY KEY AUTOINCREMENT, work BLOB NOT NULL )
,
ps 在关系数据库中,CLOB和BLOB类型被用来存放大对象。BOLB表示二进制大对象,这种数据类型通过用来保存图片,图象,视频等。CLOB表示字符大对象,能够存放大量基于字符的数据。
对于svn的操作机制的了解,有待完善