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


19

我最近将TortoiseSVN安装升级到版本1.7.1。这也迫使我也升级了我的工作副本。升级从所有子目录中删除了所有.svn目录(仅一个),而根目录中只剩下一个。

现在出乎意料的(当然;我怀疑我的防病毒软件)在例如尝试清理工作副本时出现错误。我也无能为力。

清理时的错误消息是:

清理无法处理以下路径:C:\ svn

无法打开文件'C:\ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base':系统找不到指定的文件。

我跟踪到该错误与工作副本中存在一个目录有关。如果我重命名,则一切正常。当它存在时,我得到了错误。我也删除了它并再次签出。没有更改,错误仍然存​​在。

使用以前的版本,我可以轻松修复.svn中的损坏:只需删除有问题的文件夹,然后再次签出即可。我不能再这样做了,因为现在.svn目录是集中的。

我该怎么做才能修复我的工作副本?

Answers:


21

无法打开文件'C:\ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base

我只是遇到了类似的错误,实际上我必须使用记事本制作该文件,然后进行清理。


1
但是这样做安全吗?“ svn cleanup”会再次使该文件变为非空吗?(因为以前肯定是,不是吗?)
hans_meine

我可以验证此方法是否有效,我不确定创建这样一个空文件的结果/损失是什么-但不能创建它,不允许我“进行提交”
nrathaus

4

而不是创建一个空文件(我不敢这样做),我只是对受影响的目录(指定了相同的修订版)进行了临时的全新签出,并将丢失的文件从新的.svn子文件夹复制到了损坏的工作目录中。 。

为了进一步说明这一点,在我的案例中,svn抱怨的文件是.svn/pristine/d1/d12a84ef7be5dad86b76e1a45fc3da4698d38796.svn-base,这恰好是在新的部分检出中找到的路径。


3

从旧版本升级到Tortoise SVN 1.7.7后,我们遇到了同样的问题。

由于找不到其他解决方案,因此删除了本地工作副本,然后再次签出。现在工作正常。


2

我中止合并时遇到了问题。我无法执行任何SVN操作。在执行SVN清理时,它给出了一个错误,即它找不到导致清理失败的指定文件。

我在指定的文件夹中创建了一个具有确切名称的虚拟文件,并进行了SVN清理。

然后,我得以继续。


0

我有一个类似的问题,那就是说C:\working_copy\dir\file.xml找不到文件。我已经删除了dir目录。就我而言,只需添加一个新的dir文件夹和file.xml文件(文本为空)即可继续进行清理,然后我可以正确地重新更新工作副本。


0

我的问题是,如果我从头开始存储库中签出,那么我将需要在IDE中重新配置所有项目,而我并不关心保存更改。

我已经删除了.svn目录和同一目录中的检出存储库。

问题已解决:我能够执行所有svn操作,并且仍在IDE中配置了项目

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.