SVN 已损坏,需要随历史记录一起移动

SVN 已损坏,需要随历史记录一起移动

我们的 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/(这些文件的大小差别很大,所以我很快就注意到了)

相关内容