问题描述
从SVN上下载的文件,在本地修改后,准备通过TortoiseSVN提交,发现报错。
Error: Previous operation has not finished; run ‘cleanup’ if it was interrupted 。
无论是commit还是updete都不行,提示需要执行clean up 。但svn执行clean up命令时报错 “Previous operation has not finished; run ‘cleanup’ if it was interrupted”。 无论你到那个父层次的目录执行 “clean up”,都是报一样的错。
问题原因
可能是修改本地的文件之前没有update,导致commit的时候产生冲突,致使SVN崩溃,或者其他原因。
解决方法
方法一:
备份自己修改的文件,删除之前download的文件,重新从SVN上download一份到本地。这样太耗时,不方便。
方法二:
svn 的 operation是存放在 “work queue” 里的。而 “work queue” 是在内嵌数据库 wc.db 的 work_queue 表中的。看看work_queue表中放了些什么,再做处理。
- 到网上下载sqlite3.exe,解压到E:\document.svn文件夹下。
说明:E:\document.svn 这个路径是你从SVN上拉下来的代码或文件的本地路径。.svn文件夹默认是隐藏不可见的,需要设置可见:工具 - 文件夹选项 - 查看 - 隐藏文件和文件夹。
- 运行cmd,进入到E:\document.svn文件夹下,执行sqlite3 wc.db,打开数据库
-
执行.table 可以查看表名
-
执行delete from work_queue; 命令。
-
重试 clean up 操作,问题解决。
如果,这样问题还没有解决的话,我们可以这样:
(1)我们可以输入以下命令,查看阻塞表内容:select * from work_queue;
(2)查看lock表内容:select * from wc_lock;
(3)输入命令 delete from work_queue;
(4)输入命令 delete from wc_lock;
然后重新启动项目,再次clean up;问题解决!