svn报“Previous operation has not finished; run 'cleanup' if it was interrupted”的错误

一、叙述

今天需要更新接口文檔,所以就update了一下,結果報了如下錯誤:

     Error : Previous operation has not finished; run 'cleanup' if it was interrupted.
     Error : Please execute the 'Cleanup' command.
于是就去执行Cleanup命令,但是又报错了,说文档拒绝访问。
 
查到相关信息说针对新版的,要勾选break locks(解决方法之一)

勾选了以后发现,等待它执行了很久,还是给了报错,依旧是文档拒绝访问。也许别人这样做就成功了呢,反正我是没成功。

下图为在网上找的旧版svn的cleanUp界面,

二、解决方案(二)——使用db管理工具sqlite3

我们错误的提示是:“Previous operation has not finished”,出现这个问题的说法是,Svn的operation是存放在本地.svn\wc.db数据库文件里面,即在内嵌数据库wc.db的work_queue表中的,而operation没有结束。所以我们需要使用sqlite来操作。

sqlite是一个常用的嵌入式数据库,就是一个db文件。

1、在网上下载下载db管理工具sqlite3

2、将sqlite3.exe放置到对应cleanup异常的svn项目下的.svn文件夹下,如下图:

需注意的是,.svn默认是隐藏的,我们需要勾选将其显示出来。

3、在.svn目录下打开cmd命令

4、输入输入sqlite3 wc.db

5、输入 .table 查看所有表:会看到WORK_QUEUE

6、删除WORK_QUEUE表:输入delete from work_queue;

(在这里需注意要加分号!因为现在输入的是sql语句,结尾要加;(分号)才算完整 ,否则就进入…>的状态)

7、可以查看是否删除成功:输入select * from work_queue;

(我第一遍删除后查看发现WORK_QUEUE依旧存在,所以就又执行了一次delete语句)

8、 最后在出现问题的目录下,鼠标右键找到clean up,去执行Cleanup命令,如下图。

9、clean up成功

 补充:其他解决方案(三)

看到有人使用sqlite清空这种方法不起作用,给出了另一个解决方案。

将.svn文件删除,重新checkout工程下来。在这里可以保留当前已有的项目代码,说svn在checkout过程中检测到已有文件存在时不会再重新下载,下载速度会比较快一些。但是这样感觉还是不太好,万一checkout的文件出现问题,倒不如全部删除项目,完完全全的checkout一份下来。

 

posted @ 2019-04-18 15:19  居老师的狗子  阅读(31856)  评论(1编辑  收藏  举报