我最近将 TortoiseSVN 安装升级到版本 1.7.1。这迫使我也升级工作副本。升级删除了所有子目录中的所有 .svn 目录(除了一个),只留下根目录中的一个。
现在突然(当然,我怀疑是我的杀毒软件)当我尝试清理工作副本时出现错误。我也无法提交任何内容。
清理的时候的错误信息是:
清理无法处理以下路径:C:\svn
无法打开文件“C:\svn.svn\pristine\73\73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base”:系统找不到指定的文件。
我追踪到错误与工作副本中一个目录的存在有关。如果我重命名它,那么一切都会正常。当它存在时,我收到错误。我还删除了它并再次检查了它。没有变化,错误仍然存在。
使用以前的版本,我可以轻松修复 .svn 中的损坏:只需删除有问题的文件夹并再次签出即可。我现在无法再这样做了,因为现在 .svn 目录是集中的。
我该怎么做才能修复我的工作副本?
答案1
无法打开文件“C:\svn.svn\pristine\73\73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base
我刚刚遇到了类似的错误,我实际上必须用记事本创建该文件,然后清理才能成功。
答案2
我没有创建一个空文件(我不敢这样做),而是创建了一个临时文件仅对受影响的目录进行全新签出(指定相同的修订版)并将丢失的文件从新的.svn 子文件夹复制到损坏的工作目录中。
为了进一步说明这一点,在我的例子中,svn 抱怨的文件是.svn/pristine/d1/d12a84ef7be5dad86b76e1a45fc3da4698d38796.svn-base
,这正是在新的部分签出中找到的路径。
答案3
从旧版本升级到 Tortoise SVN 1.7.7 后,我们遇到了同样的问题。
由于我没有找到其他解决方案,我删除了本地工作副本并再次检查。现在它运行正常。
答案4
我遇到了类似的问题,提示C:\working_copy\dir\file.xml
找不到文件。我删除了dir
目录。就我而言,只需添加一个新dir
文件夹和file.xml
文件(带有空文本)即可继续清理,然后我就可以正确地重新更新工作副本。