SVN执行clean up时经常出现Previous operation has not finished; run 'cleanup' if it was interrupted这种错误信息,现提供
SVN执行clean up时经常出现Previous operation has not finished; run 'cleanup' if it was interrupted这种错误信息,现提供解决方法
1、知识准备:
①svn的operation是存放在“work queue”里的,而“work queue’是在内嵌数据库wc.db的work_queue表中的。
看看work_queue表中放了些什么,再做处理。
②进入sqlite命令行环境,输入.tables,可以查看数据库的表
③与lock有关的数据通常在work_queue和wc_lock表中,清空了两张表通常就能解决问题啦
附上sqlite3的下载地址:http://pan.baidu.com/s/1miPYDgG
2、解决方法:
①内嵌数据库一般是用sqlite进行轻量级管理的。网上可以下到sqlite-shell-win32-x86: sqlite3.exe
②为了方便命令行执行,将sqlite3.exe放到svn项目的主目录下,和.svn目录同级下。如图(.svn是隐藏文件夹,需要设置才能显示出来)
③运行-->cmd-->一路cd跳转到.svn所在的上一个目录
执行sqlite3 .svn/wc.db "select * from work_queue".看到有一些记录。就是刚才我执行的一些操作。
④执行sqlite3 .svn/wc.db "delete from work_queue". 把队列清空。
⑤执行sqlite3 .svn/wc.db "select * from work_queue". 确认一下是否已经清空队列,发现已经没有记录显示,说明已经清空了。
⑥最后再试一下,看是否可以clean up了。
⑦发现提示lock,重新查看一下跟数据库有关的表格(其实只要关注wc_lock和work_queue就可以了)
发现wc_lock也有记录,一并清了
8、 再次clean up,好了,现在问题解决了。
详情参照一下链接:https://blog.****.net/kuubao/article/details/70549613