写在前面的话:
此方案适用于SVN报错:Error Updating changes:svn:E155037和svn clean up失败,亲测有效,快速解决问题直接看第二部分解决方案就可以。
一、svn报错信息
表现为代码无法提交,也无法更新。
二、解决方案
我们需要下载一个软件sqlite,输入几个命令,最后在idea中clean up。具体如下:
1、下载sqlite https://www.sqlite.org/download.html
32位的可以选择我圈出来的那个,64位的选第二个就可以了。
2、下载完毕之后解压文件,把sqlite3.exe copy到.svn目录下(.svn目录位于项目根目录下)
3、在.svn目录下按shift键,右击,选择“在此处打开命令窗口”
4、在弹出的命令行窗口中输入“sqlite3 wc.db”,打开数据库
5、输入“.table” 可以看到所有的表名,WORK_QUEUE表是我们要操作的表
6、输入”delete from WORK_QUEUE;“删除所有的操作记录
4-6 操作演示
7、回到IDEA,选中项目右键,选择Subversion -> 选择Cleanup,就好了(如果没好可以尝试重启IDEA)
三、小结
问题解决了,我们来探究一下原因,报错信息提示操作冲突,为什么选择删除WORK_QUEUE表呢?
SVN的操作信息存放在一个叫做“WORK_QUEUE”的表里,而WORK_QUEUE表存放在本地SVN数据库文件wc.db里面。这属于一种内嵌数据库,一般用sqlite进行轻量级管理,
所以我们下载sqlite对里边的表进行操作,在删除WORK_QUEUE之前可以执行 select * from WORK_QUEUE; 可以看到操作失败的记录。