无法读取块大小。 SVN出错

时间:2011-03-27 17:13:13

标签: svn tortoisesvn visualsvn-server

我已经从崩溃的PC恢复了SVN存储库,现在我可以从几个目录中检出文件,但在结账时在一个地方它说:

Error: REPORT of '/svn/RepTest/!svn/vcc/default': Could not read chunk size: 
Secure connection truncated (https://mypc:8443) 

有人可以帮助我,如何修复该存储库? 谢谢!

8 个答案:

答案 0 :(得分:3)

我在尝试将结帐更新到最新版本时遇到了同样的错误。一些摆弄显示它是导致问题的一个特定文件。例如:

root
  - A
    - AFileInFolderA.h
    - AnotherFileInFolderA.h
  - B
    - AFileInFolderB.h
  - C
    - AFileInFolderC.h

使用上面的repo结构,AFileInFolderA.h是问题文件。我得出了这个结论,因为我可以在文件夹svn updateBC而不是root或文件夹A。进一步向下钻取,我可以更新AnotherFileInFolderA.h但不能更新问题。

无论如何,掌握了这些信息后,我从文件夹A复制了我的工作副本更改,然后(使用Tortoise SVN)在根文件夹上做了选择性更新到修订,不包括文件夹我的结帐时A。然后,我反过来,将文件夹重新添加到结帐。最后,我将我的本地更改添加回来并致力于回购。现在一切正常。

答案 1 :(得分:2)

退房时我得到了同样的错误。问题确实是特定的修改,所以我做了一个解决方法。 似乎提出错误的修订有很长的路要走。对具体修订的另一种看法让我认为它可能不需要受源代码控制。这些文件是在每次构建时自动生成的。我只是在“Deprecated”文件夹中保留了整个目录的另一个副本,并删除了有问题的文件/文件夹。 删除后,结帐正常。

答案 2 :(得分:1)

我最近遇到了同样的错误:

  

'/svn/.../!svn/vcc/default'的报告:无法读取块大小:   安全连接被截断。

我们正在使用Tortoise SVN,我是团队中唯一遇到此问题的人。既然这个问题并没有阻止我做出改变,那我就是这样做的。接下来,我从硬盘驱动器中删除了包含项目的文件夹。然后我又创建了它并进行了“SVN结账”。

这就是为我解决的问题。

答案 3 :(得分:1)

有相同问题的人的另一个答案,但有一个尚未提及的解决方案:

在我的情况下,问题无法精确定位到单个文件。但是,它显然与单个svn版本相关联。

在这种情况下的解决方案是跳过获取错误修订。这可以通过使用git svn fetch选项调用-r来实现。例如,如果r42是错误的修订版,并且您已经获取了r41之前的所有修订版,那么只需执行

git svn fetch -r43

接着是

git svn fetch

让您的git存储库保持最新状态。当然,这种方法的明显缺点是你得到的历史漏洞,但我认为历史上有一个小洞比没有工作git svn克隆更好。

答案 4 :(得分:0)

对我们来说,问题是缺少SVN历史记录中的文件(可能是磁盘损坏)。任何操作(包括最近更改来自历史记录的缺失部分的文件)都会因“无法读取块大小”错误或无效的XML错误(取决于操作)而失败。 幸运的是,我们有一个包含丢失文件的备份。恢复它们解决了这个问题。

答案 5 :(得分:0)

我有类似的问题,'svnadmin recover'确实神奇地解决了问题。

在另一个回购中,它不会...使用版本SVN客户端(MacOSX)我可以看到行为不当的目录中的某些文件的提交用户名是'### ERROR ###' - 这些dirs正在给出更新时出现“安全连接被截断”问题。只需将具有此标记的文件“移动”到另一个目录中(在服务器上,通过版本SVN客户端),就足以删除### ERROR ###标记并启用成功更新。

答案 6 :(得分:0)

我和我的同事都遇到了相同的问题以及我们如何解决该问题:

  1. 在svn服务器上,我们检查了带有存储库的分区文件系统中fsck的错误(我们的服务器Linux发行版正在运行)。
  2. 要备份的已复制存储库目录。
  3. 通过svnadmin validate /path/to/repository验证的存储库。

完成这些步骤后,问题就解决了。

答案 7 :(得分:-3)

我有同样的问题,我使用TortoiseSVN和VisualSVN,问题出在你的一个提交中,但是很难知道它是哪一个,我的解决方案是删除并在VisualSVN中创建存储库然后执行相同的操作到我的电脑上的“结账文件夹”,在此之后,将项目复制到该文件夹​​并进行“第二次提交”:)但将丢失所有以前的提交。