我有几个大的结帐,其中.svn文件夹已损坏所以我得到并且错误,“清理无法处理以下路径..”而且我不能再提交或更新该目录中的文件
我只是删除并再次结帐,但整个目录都在演出。
是否有工具可以恢复特定文件夹的.svn文件夹而无需下载所有内容?
据我所知,它必须下载该文件夹中的所有文件,以便确定它们是否已被更改。但是具有有效.svn文件夹的子目录应该没问题。
哦..我是TortoiseSVN或Linux命令行的忠实粉丝。
思想?
答案 0 :(得分:21)
如果您对文件进行了更改,并且无法删除它们,则可以使用Subversion 1.5功能,该功能允许您“使用障碍物结帐”。
只需删除此目录中的.svn目录即可: (使用--depth文件时,您不需要删除内部目录,感谢Eric)
如果损坏的目录是工作副本的顶级目录:
svn checkout --depth files --force REPOS WC
如果破坏的目录上方的目录仍然是版本的,请运行:
svn update --depth files --force WC
在该目录中。
在两个示例中,REPOS是存储库中与损坏的目录匹配的URL,WC是目录的路径。
最初修改的文件在此之后将处于修改状态。
答案 1 :(得分:5)
如果您知道哪个文件夹有损坏的.svn目录,则可以删除该目录并再次运行svn更新。您可能必须删除整个目录,包括其当前内容。当然,如果具有损坏的.svn目录的文件夹是包含千兆字节的文件夹,那么您就回到了开始的位置。
答案 2 :(得分:3)
备份缺少.svn
的文件夹然后删除文件夹
如果是结帐的根源,则必须重新结账
如果它不是root用户,只需从上面的目录运行更新。
然后移动备份文件夹。 (理想情况下不要移回.svn文件夹)
继续工作并确保更新/提交!
答案 3 :(得分:2)
我在过去发现过这个问题,除了“核选项”(即删除目录并重新结账)外,没有找到合适的解决方案。
不确定这是否是您的问题,但我的损坏是由与SVN服务器在同一台计算机上的按访问病毒扫描程序引起的。
答案 4 :(得分:1)
如果子目录和OK以及它是大的子目录,您可以尝试非递归的新结账。
答案 5 :(得分:1)
所选解决方案对我来说是恢复顶级.svn文件夹,但它无法识别子对象,所以此时SVN的所有内容似乎都是陌生的,尽管版本在子文件夹中保持不变。
答案 6 :(得分:0)
我今天遇到了同样的错误。它发生在我尝试切换分支并且无法删除不在svn存储库中的文件之一时。之后,文件夹被锁定,我无法使用任何命令让它再次运行。
我基本上删除了我的内容并重做结帐。这是耗时的,但我真的想确保在我再次开始工作之前svn是清楚的。谢谢!