- 报错描述
在使用 svn 客户端执行操作失败后,执行 Clean up 操作也报错:Cleanup failed to process the following paths... ,一直不知道是什么原因。通常的解决方法是,删除所有文件重新 checkout 。文件小的话重新 checkout 可行,但是更新比较大的项目代码出错的话就有些麻烦。
google 了一下,大致说的原因是:对一些文件操作的时候出现错误,文件加锁。
对于 svn 的加锁文件,svn 不同版本的加锁方式是不一样的:1. 版本 1.7 之前加锁文件是 lock 的后缀文件,直接在报错目录的.svn目录下删除即可;1.7 版本以后(本人用 2.0 )加锁信息是存储在隐藏文件夹 .svn 目录下 sqlite 文件中,存储的表名为 wc_lock、work_queue。
- 解决办法:
1. 下载 Sqlite3.exe [点击下载]
2. 将Sqlite3.exe放到.svn的同级目录
3. 在cmd控制台中将盘符转到svn版本控制的文件夹
4. 执行sqlite3 .svn/wc.db "select * from work_queue"
5. 看到work_queue中保存的工作队列
6. 执行sqlite3 .svn/wc.db "delete from work_queue" 删除工作队列
7. 执行sqlite3 .svn/wc.db "delete from wc_lock" 删除锁
8. 重新执行Cleanup命令,成功!