解决SVN客户端操作clean up commit update 报错系统找不到文件

今天遇到一个稍微有点麻烦的问题:SVN客户端checkout repo目录后,有一些文件被windows defender 干掉,导致操作报错。

本文的文件路径和SVN路径统一使用XXXX代替。

报错如下:

Failed to run the WC DB work queue associated with
 'XXXX\dotnetfx45_full_x86_x64.exe',
 work item 11564 (file-install 221
 XXXX/dotnetfx45_full_x86_x64.exe
 1 0 1 1)
Can't open file
 'XXXXX\.svn\pristine\7a\7ab1c918141034fe4c9c34ba79c4cf63bce76098.svn-base':
 系统找不到指定的文件。

按照以往的经验,肯定是被杀毒软件杀掉了。我的Windows10只有windows defender,显然是他干的。
打开windows defender C:\Program Files\Windows Defender\MSASCui.exe,查找历史记录。

如果被删的文件少,将目标文件夹设为规则例外,还原文件也就解决了。但我这里文件太多,不知道哪个是目标文件,一个一个找起来实在是麻烦。

想了想,用了个粗鲁的办法:svn-base文件既然被删,那我再造个文件不就得了?

So,报错中出现的文件*.svn-base,我在 .svnpristine 路径下新建了一个,和报错要找的一样。

添加完毕后,再clean up->update,成功check出文件夹中的内容,解决问题。

总结一下,问题的关键是*.svn-base文件莫名其妙被删,导致相关操作失败。至于这个文件为什么被删,没想明白。猜测是这个文件check出的文件有问题,所以被defender株连。如果猜测不正确,希望有懂的可以解答。

版权声明

弈心博客


本文首发site_name,转载请附上博文链接!