今天在改完十几个类文件批量提交时,在代码提交SVN服务器过程中,电脑突然性卡死一大会没有反应,果断采取关闭然后重启开发工具的方式,重启开发工具后,发现代码仍然提示为未提交状态,执行提交时报错,提示需要执行clean up,果断右键执行clean up,又提示一个新的错误:"Previous operation has not finished; run 'cleanup' if it was interrupted",此后又尝试了该项目目录树不同目录进行更新或者提交,甚至把该项目删除重新check out,都会出现同样的问题;

       这个时候查阅了一下资料得知:本地的SVN客户端中有一个嵌入式DB(里面大约有10多个表)SQLite,来保存SVN中管理的文件类型,项目结构树,用户操作进度等,所以我们可以大胆假设下,上述我们提交代码过程中,SVN客户端用户代码提交操作非正常的终止,导致sqlite中某个表中用来记录用户对项目A的操作(增删改等)的数据来不及更改,由于我们后续的所有针对项目A的操作,都优先从该表中检查项目A是否有未完成的操作,如果存在未完成操作就会提示"Previous operation has not finished",顺着这个思路,如果我们找到这个表,且把这个表中相关记录删除,是不是就可以解决这个问题,通过查阅相关资料发现:

在使用了svn的项目中,在项目根目录会有一个.svn文件夹,点击进入后结构如下:
记录一次svn报错:[Previous operation has not finished; run

 记录一次svn报错:[Previous operation has not finished; run

 

 就是箭头指向的这个文件,它就是SQLite数据库文件,我们可以用SQLite3.exe打开它,或者数据库连接工具打开它,下面开始解决上述问题

打开数据库:

删除WORK_QUEUE表即可

 DELETE FROM WORK_QUEUE