svn报错:“Previous operation has not finished; run 'cleanup' if it was interrupted“ 的解决办法

踩到的坑,还是记录下填坑记录;

首先,我出现此问题原因是commit次数多、频率高、电脑卡。一下子姨妈红信息就冒出来了。

直接上干货,代码提交、更新时出现问题:

     百度后,大多数的方法是:

     team--> Refresh/Cleanup

 

      再重新获取时,还是出现问题:

另一个程序正在使用此文件,进程无法访问。

 

 

无论你到那个父层次的目录执行“clean up “,都是报一样的错。执行cleanup时候,提示要cleanup。看来是进入死循环了。

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

解决方法:清空svn的队列

 

1.    内嵌数据库一般是用sqlite进行轻量级管理的。网上可以下到sqlite3.exe(点击下载)

2.    找到你项目的.svn文件(一般是隐藏文件,需设置显示),查看是否存在wc.db

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

找到本地存放svn项目的目录,将sqlite3.exe复制到该项目根目录下(与.svn目录同级)

可能.svn在项目中这个文件被隐藏了,直接复制进svn项目即可。

 

4.   启动cmd执行sqlite3 .svn/wc.db "select * from work_queue" 可能会看到很多记录

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

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

7.    最后再试一下,看是否可以  clean up了。果然成功了。

最后搜索了此类问题出现的情况,1、svn操作过于频繁  ;2、与svn服务器冲突时可能出现;这种情况属于svn内置bug,了解下就好;


出处:https://blog.csdn.net/qq_16769857/article/details/52149285

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值