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就解决了

 

posted @ 2023-08-23 17:35  骚哥  阅读(1988)  评论(0编辑  收藏  举报