SVN(Apache Subversion)是一款开源的版本控制工具。当执行svn cleanup操作失败时,可尝试通过手动清除工作副本中的锁文件或使用命令行工具强制清理来解决问题。
1、 使用TortoiseSVN更新本地文件时失败,系统提示需先执行Cleanup命令清理,以解决更新问题。
2、 通常情况下,使用TortoiseSVN客户端的清理功能可解决本地文件更新失败的问题。但有时执行清理命令时也会失败,系统仍提示需进行清理操作,反复尝试仍无法成功,陷入循环提示状态,导致问题迟迟无法解决,给版本更新带来困扰。
3、 网上查得解决办法,需删除锁定的数据即可。
4、 对于 TortoiseSVN 客户端1.7版本之前的情况,可进入项目目录下的 .svn 文件夹,查找并删除以 .lock 结尾的文件即可解决问题。
5、 使用 TortoiseSVN 1.7 或更高版本时,加锁信息以数据表形式存储在 .svn 目录中的 .db 文件内。可通过 SQLite 数据库管理工具打开该文件,进入数据库后找到与锁相关的表记录,手动删除对应的锁条目即可解除锁定,操作完成后保存更改并关闭数据库。
6、 因个人使用的TortoiseSVN客户端版本为1.9,故选择第二种解决方法,需搜索并下载sqlite3.exe工具以配合操作。
7、 把 sqlite3.exe 复制到 .svn 文件夹内
8、 通过资源管理器地址栏输入cmd,打开命令行窗口,进入.svn目录进行操作。
9、 在命令行中输入sqlite3.exe wc.db并回车,即可进入SQLite数据库操作环境。
10、 输入 .table 可查看全部数据库表,需重点关注 wc_lock 和 work_queue 这两个表,因为它们存储了 SVN 操作中的 cleanup 和 lock 相关信息。若这两张表中存在残留数据,将会阻碍 SVN 后续操作的正常执行,因此在出现问题时应优先检查并清理其中的内容。
11、 清空两张表后执行删除操作,再通过TortoiseSVN客户端更新文件,即可恢复正常更新,无需再处理cleanup失败的问题,更新过程将顺利进行。
12、 输入 .quit 命令即可退出 SQLite 命令行界面。
