目录
问题背景
今天删除项目中的一个文件时,svn报错没能删除成功。之后再更新时便出现了Previous operation has not finished; run 'cleanup' if it was interrupted这样的错误提示。
为什么会出现这种错误?
通过查阅相关资料发现:本地的SVN客户端中有一个嵌入式DB(里面大约有10多个表)SQLite,来保存SVN中管理的文件类型,项目结构树,用户操作进度等,所以我们可以大胆假设下,上述我们提交代码过程中,SVN客户端用户代码提交操作非正常的终止,导致sqlite中某个表中用来记录用户对项目A的操作(增删改等)的数据来不及更改,由于我们后续的所有针对项目A的操作,都优先从该表中检查项目A是否有未完成的操作,如果存在未完成操作就会提示"Previous operation has not finished",顺着这个思路,如果我们找到这个表,且把这个表中相关记录删除,是不是就可以解决这个问题。
解决方法
在项目根目录会有一个.svn文件夹,点击进入后结构如下:
箭头指向的这个文件,它就是SQLite数据库文件,我们可以用SQLite3.exe打开它。
第一步:下载SQLite3.exe
SQLite3.exe下载链接:https://gitee.com/zhangfanhao/CSDN/blob/master/sqlite3.exe
第二步:将下载的SQLite3.exe放到.svn目录下
第三步:打开cmd,切换至.svn目录下
第四步:执行sqlite3 wc.db //表示采用sqlite3工具打开wc.db文件
第五步:执行.table //表示查看这个微型数据库中的所有table
第六步:执行DELETE FROM WORK_QUEUE; //命令执行删除
第七步:选中项目,执行svn的clean up操作,然后SVN项目可以正常使用了;