【svn】Cleanup failed to process the following paths和Failed to run the WC DB work queue错误解决

1. 错误现象

使用svn执行checkout过程中,由于某些异常操作或不规范的文件命名导致命令执行失败,并弹出提示cleanup。如下(出错时忘记截图保存,此处借用网友的一张图片):

【svn】Cleanup failed to process the following paths和Failed to run the WC DB work queue错误解决

但执行cleanup命令后,又弹出如下弹出(同样借用网友图片)导致svn无法使用。

【svn】Cleanup failed to process the following paths和Failed to run the WC DB work queue错误解决

2. 解决方案

2.1 下载sqlite3.exe

需要清空svn管理数据库中的错误记录,那么就需要数据库操作工具,sqlite3.exe是一个轻量级数据库的操作工具,通过命令执行数据库的增删改查操作。如果你已有类似数据库的管理工具,可以忽略此步骤。

下载路径:http://www.sqlite.org/download.html

(Android开发者,可以直接在sdk/platform-tools目录下有现成的sqlite3.exe文件)

2.2 放置sqlite.exe

将sqlite3.exe放至.svn目录下,可以看到该目录下有wc.db文件,就是我们要操作的数据库文件。

2.3 执行SQL语句

1)运行cmd,并进入.svn目录

2)执行sql命令,清空wc.db下的work_queue和wc_lock两张表

  • sqlite3 /wc.db 
  • delete from work_queue;
  • delete from wc_lock;

3)一般情况下,问题即可解决,再次执行svn的cleanup操作。即可正常使用

2.4 文件名包含特殊符号导致的错误解决

除了上述清楚work_queue和wc_lock两张表以外,还需要该数据库下nodes表中错误路径记录。

以文件名中包含“*”号为例:那么需要接着上面的sql后,再执行:

delete from nodes where local_relpath like '%*%';

然后再执行cleanup,问题可彻底解决。