【异常解决】svn报“Previous operation has not finished; run ‘cleanup‘ if it was interrupted”的错误解决方案

svn报“Previous operation has not finished; run ‘cleanup’ if it was interrupted”的错误解决方案

  • 一、问题描述
  • 二、报错原因
  • 三、解决方案
    • 3.1 执行 Cleanup 命令
    • 3.2 删除WORK_QUEUE表中数据
    • 3.3 重新Checkout整个工程

一、问题描述

前提条件,使用的版本控制工具是 SVN。

今天需要更新接口文档,所以就使用svn客户端(俗称小乌龟)update了一下,结果了如下错误:

图片[1] - 【异常解决】svn报“Previous operation has not finished; run ‘cleanup‘ if it was interrupted”的错误解决方案 - MaxSSL

Error : Previous operation has not finished; run ‘cleanup’ if it was interrupted.
Error : Please execute the ‘Cleanup’ command.

二、报错原因

本地的SVN客户端中有一个嵌入式 wc.db(里面大约有10多个表)SQLite,来保存SVN中管理的文件类型,项目结构树,用户操作进度等。当SVN客户端用户代码提交操作非正常的终止,导致sqlite中某个表中用来记录用户对项目A的操作(增删改等)的数据来不及更改,由于我们后续的所有针对项目的操作,都优先从该表中检查项目A是否有未完成的操作,如果存在未完成操作就会提示 “Previous operation has not finished”

三、解决方案

3.1 执行 Cleanup 命令

根据报错信息提示,需要执行 Cleanup 命令,于是就按照提示去执行 Cleanup 命令,
图片[2] - 【异常解决】svn报“Previous operation has not finished; run ‘cleanup‘ if it was interrupted”的错误解决方案 - MaxSSL
但是又报错了,需要构选 “Break write locks” 命令。
图片[3] - 【异常解决】svn报“Previous operation has not finished; run ‘cleanup‘ if it was interrupted”的错误解决方案 - MaxSSL于是根据提示信息把 “Break write locks” 打上勾,再次执行 cleanup 命令
图片[4] - 【异常解决】svn报“Previous operation has not finished; run ‘cleanup‘ if it was interrupted”的错误解决方案 - MaxSSL结果神奇般的好了,成功了。Cleanup has successfully processed the following paths: …
图片[5] - 【异常解决】svn报“Previous operation has not finished; run ‘cleanup‘ if it was interrupted”的错误解决方案 - MaxSSL至此,对于我来说这个问题已经解决了,但是我是执行了很多次 Cleanup 命令之后,然后电脑重启又执行了好几次 Cleanup 命令,最终得以解决。

如果对于屏幕前的你来说还没有解决,请继续往下看其他解决方案…

3.2 删除WORK_QUEUE表中数据

在使用了svn的项目中,在项目根目录会有一个.svn文件夹,这个是隐藏文件夹, 需要开启显示隐藏文件功能才能看到此文件夹。

.SVN文件夹中有个 wc.db 文件,该文件是sqlite的文件型数据库,使用相关工具即可打开,例如 Navicat 等。

打开数据库后,可以看到表 WORK_QUEUE,删除此表中的数据即可。

上述操作完成后,然后在执行 svn 的 cleanup 操作。

3.3 重新Checkout整个工程

将**.svn文件删除,重新checkout工程下来。在这里可以保留当前已有的项目代码,说svncheckout**过程中检测到已有文件存在时不会再重新下载,下载速度会比较快一些。

但是这样感觉还是不太好,万一checkout的文件出现问题,倒不如全部删除项目,完完全全的checkout一份下来。

本文完结!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享