svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法

来源:互联网 发布:js的面向对象编程理解 编辑:程序博客网 时间:2024/06/11 02:23

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

可能是频繁做了一些改名,文件打开的时候更新或者提交操作,导致svn罢工了。这个也该算是svnbug吧。类似的情况,其实之前也碰到过。之前都是图省事,把整个svn checkout的主目录都删掉,重新checkout来解决的。但是随着项目的深入开展,要更新的文件越来越多。这个问题迟早要解决的,试试看吧。问题的关键看来需要找到死锁的地方,解锁才行。网上查了下资料。Svnoperation是存放在“work queue’“里的。而“work queue’是在内嵌数据库wc.dbwork_queue表中的。看看work_queue表中放了些什么,再做处理。

1.    内嵌数据库一般是用sqlite进行轻量级管理的。网上可以下到sqlite-shell-win32-x86: sqlite3.exe

2.    为了方便命令行执行,将sqlite3.exe放到svn 项目的主目录下,和.svn目录同级下。

3.    执行  sqlite3 .svn/wc.db "select * from work_queue".看到有4条记录。就是刚才我执行的一些操作。

226539|(sync-file-flags 93目录名 文件名)

226540|(file-remove 21 .svn/tmp/svn-7B43C232)

226541|(sync-file-flags 目录名 文件名)

226542|(file-remove 21 .svn/tmp/svn-7B48224E)

4.    执行  sqlite3 .svn/wc.db "delete from work_queue". 把队列清空。

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

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

另外还有一种方法别人也推荐,但因为这个成功了就没再试。就是使用命令行工具svn.exe 执行cleanup svn项目目录。因为默认安装的时候,这个命令行工具是不被安装的,所以需要启动安装程序,选择修改,选上命令行工具才行。估计这个命令的实际效果和上面一种方法是类似的。不过应该比图形界面的右键菜单的更强大些吧。有兴趣可以试试。  

 

顺便补充一下, sqlite是一个非常常用的嵌入式数据库,就是一个db文件。像手机qq等这些软件都会内置一个这样的数据库进行多条数据的管理。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 方与圆 圆方软件 方与圆全集 圆方 外圆内方 化圆为方 方与圆读后感 方与圆在线阅读 左手画方右手画圆 圆方木业 随圆就方 方与圆丁远峙 左手画方右手圆生肖 智圆行方 方与圆经典语录50句 左手画方右手圆什么生肖 左手画圆右手画方 随方就圆 方与圆经典语录 圆首方足 方与圆是谁写的 圆方家居设计 圆方软件排料 方与圆3txt下载 圆方橱柜设计软件4.0 圆方软件效果图 圆方软件好学吗 圆方软件下载 圆方家居设计软件 圆方软件多少钱 园方软件 圆方设计软件 圆方软件破解版 圆方橱柜设计软件 圆明 圆月 圆月图片 一什么圆月 圆月诗句 关于圆月诗 一什么圆月填量词