svn 执行cleanup报错

svn执行update命令时报错“Error:svn: E155004: There are unfinished work items in 'E:\projectCode\code\164\neweb\otcWeb'; run 'svn cleanup' first.”。

执行cleanup时候,提示要Error:Error performing cleanup for 'E:\projectCode\code\164\neweb\otcWeb': svn: E155004: Working copy 'E:\projectCode\code\164\neweb\otcWeb' locked
svn: E155004: 'E:\projectCode\code\164\neweb\otcWeb' is already locked.
svn: E155004: 'E:\projectCode\code\164\neweb\otcWeb' is already locked.。看来是进入死循环了。

可能是频繁做了一些改名,文件打开的时候更新或者提交操作,导致svn罢工了。这个也该算是svnbug吧。类似的情况,其实之前也碰到过。之前都是图省事,把整个svn checkout的主目录都删掉,重新checkout来解决的。但是随着项目的深入开展,要更新的文件越来越多。这个问题迟早要解决的,试试看吧。问题的关键看来需要找到死锁的地方,解锁才行。网上查了下资料。Svnoperation是存放在“work queue’“里的。而“work queue’是在内嵌数据库wc.dbwork_queue表中的。看看work_queue表中放了些什么,再做处理。

1.    内嵌数据库一般是用sqlite进行轻量级管理的。官网下载 sqlite3.exe: https://www.sqlite.org/download.html 选择 windows系统选择 sqlite-tools-win32-x86-3240000.zip(当前最新版本解压里面有三个文件,我们只需要sqlite3.exe)。

不想去官网下载的小伙伴,可以在这里下载 https://download.csdn.net/download/qq_36356218/10473733

2.    为了方便命令行执行,将sqlite3.exe放到svn 项目的主目录下,和.svn目录同级下。

3.    执行  sqlite3 .svn/wc.db "select * from work_queue".看到有1条记录。就是刚才我执行的一些操作。

    1|(file-install src/main/resources/web/resources2/g3070/js/g3070Index.js 1 0 1 1)

4.    执行  sqlite3 .svn/wc.db "delete from work_queue". 把队列清空。

5.    执行 sqlite3 .svn/wc.db "select * from work_queue". 确认一下是否已经清空队列,发现已经没有记录显示,说明已经清空了。

6.    然后再试一下 clean up,结果成功了


猜你喜欢

转载自blog.csdn.net/qq_36356218/article/details/80663306