首页 > 代码库 > svn cleanup failed–previous operation has not finished 解决方法

svn cleanup failed–previous operation has not finished 解决方法

问题描述:svn执行clean up命令时报错“Previous operation has not finished; run ‘cleanup‘ if it was interrupted”。无论你到那个父层次的目录执行“clean up “,都是报一样的错。执行cleanup时候,提示要cleanup。看来是进入死循环了。

背景知识:Svnoperation是存放在“work queue’“里的。而“work queue’是在内嵌数据库wc.dbwork_queue表中的。因此看看work_queue表中放了些什么,再做处理。

问题解决的步骤:

(1)、上文说到需要看下work_queue里面在做什么,因此需要一个能够查看work_queue的工具sqlite,关于sqlite可以自行百度,这里不做赘述。官网下载地址:http://www.sqlite.org/download.html 建议选择sqlite3.exe 下载,如下图所示: 

技术分享

 

(2)、找到你的svn checkout的主目录下的 .svn 文件夹,打开文件夹,可以找到wc.db文件。

(3)、将wc.db 文件和刚刚下载的sqlite3放到一个临时的目录下(这里做一个备份,防止直接操作wc.db文件导致wc.db文件损坏了)。

(4)、打开命令行,并将命令行目录切换到刚刚建的临时目录,如下图所示:

技术分享

(5)、执行如下命令:

sqlite3 wc.db; // 打开wc.db

sqlite3 select * from work_queue; // 查看当前work_queue中的任务

sqlite3 delete from work_queue; // 讲当前work_queue中任务删除

(6)、如果上述命令都成功执行,那么恭喜,只需要将wc.db 覆盖.svn目录下的wc.db ,然后再次执行 cleanup操作就可以了

 

svn cleanup failed–previous operation has not finished 解决方法