SVN之“解决SVN清理失败问题”
解决SVN清理失败,显示乱码问题
更新SVN时,提示要清理,但是清理失败,此时什么也操作不了,以下就是解决方案。
情况如图:
解决方案一:
下载splite3
新建一个临时文件夹,使用英文名字,将解压后的sqlite.exe文件复制到这个临时文件夹下
找到你存放文件的SVN文件库中.svn文件夹里的wc.db文件,复制到临时文件夹里。有可能在SVN文件库里找不到.svn文件夹,那是因为隐藏了。
解决方法(win7):点击菜单栏里的组织选项—>文件夹和搜索选项->查看/显示隐藏的文件和文件夹
解决方法(win10):文件—>查看—>隐藏所选项目(勾上图示的两个框框)
进入临时文件夹,cmd运行输入 sqlite3 wc.db 回车,再输入
select * from work_queue;
如果有查询记录了再输入 delete from work_queue;结束。 下图:
delete from work_queue;
复制临时文件夹里的wc.db,覆盖.svn下的wc.db
执行清理,正常清理,如果清理时显示锁定,且上下级清理都是,勾选清理选项中的解锁选项
最后:再试试cleanup,一开始可能有点慢。
解决方案二:
1,2,3跟方案1 一样
执行.table 把所有表找到。如下图:
5.这里要用到wc_lock这个表,所有执行select * from wc_lock;有个东西。
执行delete from wc_lock; 再查询就没有了。
最后:再试试cleanup,这下也可以成功了。
再查询就没有了。
最后:再试试cleanup,这下也可以成功了。
原文链接:https://blog.csdn.net/weixin_44251396/article/details/98480425
解决方案三:
#打开记录数据库 sqlite3 .svn/wc.db #把下面的your missing pristine here 替换为出错文件的sha1值, #(问题例子中为48d766ebb57192e87f2c1438f3a265e43dab49a9),注意前面的$sha1$要保留 sqlite> select * from pristine where checksum="$sha1$48d766ebb57192e87f2c1438f3a265e43dab49a9"; #执行上面的命令后查询结果为空,那么继续下面的操作 sqlite> select * from nodes where checksum = '$sha1$48d766ebb57192e87f2c1438f3a265e43dab49a9'; #找到一条记录,那么直接删除,命令如下 sqlite> delete from nodes where checksum="$sha1$48d766ebb57192e87f2c1438f3a265e43dab49a9";
最后:再试试cleanup,这下也可以成功了。
解决方案四:
遇到文件自动删除SVN的文件,可以看下防火墙是否没关,我是这里没有关闭
关闭后执行方案3就解决了