![SVN 已损坏,需要随历史记录一起移动](https://linux22.com/image/582364/SVN%20%E5%B7%B2%E6%8D%9F%E5%9D%8F%EF%BC%8C%E9%9C%80%E8%A6%81%E9%9A%8F%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%E4%B8%80%E8%B5%B7%E7%A7%BB%E5%8A%A8.png)
我们的 svn repo 出现了问题,它包含所有内容,因此非常重要。
当我们运行转储时,我们会收到错误消息
svnadmin:E200002:序列化哈希格式错误
这阻止我们执行转储和移动内容,svn 导出也失败了。
我们发现其中一个修订版已损坏,有什么方法可以修复或修复存储库,因为我们需要移动它。
答案1
这对我有用。我刚刚修复了损坏的文件 db/revprops/19。19 是损坏提交的版本。您可以通过执行 svn log 查看哪个提交已损坏。
该文件看起来应该像这样:
K 10
svn:author
V 5
roman
K 8
svn:date
V 27
2010-06-05T16:53:51.953072Z
K 7
svn:log
V 0
END
我必须改变这一点
K 6
svn:loo
更改为:
K 7
svn:log
(此处的 7 表示下一行的长度)
答案2
您是否有可从中获取该修订版本的备份或镜像?
今天我确实遇到了同样的错误,我的一个镜像上的修订版本 0 被损坏了,我可以通过从另一个镜像复制 revprops(损坏的文件)来修复它。它成功了,之后我没有遇到任何问题。
这可能不是推荐的方法,因此用户要小心。备份备份备份。
答案3
我们已设法修复此问题,方法是在损坏的修订版的两侧执行 svn 转储,然后使用 cat 或 type(取决于您使用的平台)将两个文件合并在一起,然后将其导入新的存储库。
完成此操作后,我进行了验证,并且验证完成,而且所有历史修订现在均可见,而之前它无法越过损坏的修订文件。
答案4
经过几次手动备份/恢复操作后,我的存储库开始出现相同的错误。我检查存储库根目录中的最后修订,发现分贝/转速/目录放置在db/revprops/(这些文件的大小差别很大,所以我很快就注意到了)