在使用TortoiseSVN工具执行Cleanup操作时经常出现Cleanup failed to process the following paths的错误,具体如下图:


     网上搜索了一下,找到了解决办法:

    TortoiseSVN客户端1.7版以前的加锁文件时一个lock后缀的文件,直接在报错目录的.svn目录下删除即可。

 

TortoiseSVN客户端1.7版以前(含1.7版本)的加锁信息是一条记录放在报错目录下的.db文件里面,用可以SQLite文件的工具将改文件打开,然后删除那条lock记录即可。

 

     具体是如果你想用SQLite文件可视化工具,可以安装SQLiteExpert Professional工具。安装好SQLiteExpert Professional工具,找到svn目录下的wc.db文件,如下图:


打开wc.db文件,删除wc_lock和work_queue两张表下的所有记录,具体如下图:



 

    如果你想用命令行操作,可以是下载sqlite3.exe 放到 .svn 目录下,启动命令行,敲入命令:

 

sqlite3.exe wc.db

 

 

这时,进到了sqlite的命令行环境,可以操作该数据库了,首先我们输入命令:

 

.tables

 

 

将该数据库中的表都显示出来,我们需要关注的是 wc_lock 和 work_queue,因为关于操作的cleanup和lock的信息是保存在这2个表里。需要的话,可以使用 select *from wc_lock;来查看表中的信息是否为之前操作对应的文件或目录,如果这2张表存在数据那么svn就无法进行后续的操作。

 

很简单,你只要把这2张表清空即可,命令很简单:

 

delete from wc_lock;

delete from work_queue;

 

参考文献:

 

1. 如何搞定SVN目录的cleanup问题和lock问题

 

2. SVN:cleanup failed to process thefollowing paths 错误的解决方案