如何修复损坏的存储库(具有集中的.svn 目录)?

如何修复损坏的存储库(具有集中的.svn 目录)?

我最近将 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文件(带有空文本)即可继续清理,然后我就可以正确地重新更新工作副本。

相关内容