svn执行clean up 操作时报错 "Previous operation has not finished; run cleanup if it was interrupted"

今天在项目中更新的时候,突然间爆了一个svn的这个错误,当时提示我去clean up操作,结果我执行clean up操作时候,还是报错,网上查找资料原来是使svn进入了死循环的状况,我把如何解决这个冲突的问题分享给大家,希望对遇到此问题的同学们有所帮助!

svn发生冲突时候,提示clean up ,执行clean up操作时报错 “Previous operation has not finished; run 'cleanup' if it was interrupted”。无论你到那个父层次的目录执行“clean up “,都是报一样的错。执行clean up时候,提示要clean up。可能是频繁做了一些改名,文件打开的时候更新或者提交操作,导致svn罢工了。这个也该算是svn的bug吧。类似的情况,其实之前也碰到过。之前都是图省事,把整个svn checkout的主目录都删掉,重新checkout来解决的。但是随着项目的深入开展,要更新的文件越来越多。这个问题迟早要解决的,试试看吧。问题的关键看来需要找到死锁的地方,解锁才行。网上查了下资料。Svn的operation是存放在“work queue’“里的。而“work queue’是在内嵌数据库wc.db的work_queue表中的。看看work_queue表中放了些什么,再做处理。

1.先去下载一个  sqlite3.exe ;

2.将下载好的 sqlite3.exe 文件放到 .svn 的同级目录下;

3.然后启动cmd命令执行找到你的 sqlite3.exe 接下来执行 sqlite3 .svn/wc.db "select * from work_queue"; 回车操作

4.然后会显示看到很多的记录,接下来执行 sqlite3 .svn/wc.db "delete from work_queue"; 【把队列清空】 回车操作

5.    执行 sqlite3 .svn/wc.db "select * from work_queue". 确认一下是否已经清空队列,发现已经没有记录显示,说明已经清空了。

6.    最后再试一下,看是否可以  clean up了。果然成功了。



你可能感兴趣的:(验证工具)