SVN异常,Previous operation has not finished; run 'cleanup' if it was interrupted

SVN在提交、更新、cleanup时报错:
Problem running log
svn: Failed to run the WC DB work queue associated with 'D:\workspace\tmsdev', work item 9414 (file-install WebRoot/WEB-INF/lib/tms-express-api-1.0-SNAPSHOT.jar 1 0 1 1)
拒绝访问。  
svn: Can't move 'D:\workspace\tmsdev\.svn\tmp\svn-1948B6AC' to 'D:\workspace\tmsdev\WebRoot\WEB-INF\lib\tms-express-api-1.0-SNAPSHOT.jar':拒绝访问。  


    Previous operation has not finished; run 'cleanup' if it was interrupted

问题分析如下:
1,问题表现为前面的操作未完成,后面的操作不能进行,前面的操作可能进入死循环或者bug了,完成不了。
2,Svn的operation是存放在“work queue“里的。而“work queue’是在内嵌数据库wc.db的work_queue表中的。wc.db文件放在项目的.svn文件夹中。看看work_queue表中放了些什么,再做处理。
3,内嵌数据库一般是用sqlite进行轻量级管理的。网上可以下到sqlite-shell-win32-x86: sqlite3.exe(https://www.sqlite.org/download.html)就是一个文件名是sqlite3的可执行文件。


4,把sqlite3放在.svn目录下,网上说的执行sqlite3 .svn/wc.db "select * from work_queue"我试了没什么反应,但理论上是要用sqlite3把wc.db打开,我是直接把wc.db文件用鼠标拖拽到sqlite3.exe文件上打开的。
5,打开之后执行select * from work_queue;,分号结尾,可以看到现在work_queue中的operation。
6,执行delete from work_queue;,删除work_queue中的operation,然后就可以cleanup等操作了。

你可能感兴趣的:(SVN异常,Previous operation has not finished; run 'cleanup' if it was interrupted)