我们有一个问题出svn回购,它包含了一切,所以是非常重要的。
当我们运行转储时,我们会收到错误消息
svnadmin:E200002:序列化散列格式不正确
这是阻止我们执行转储和移动我们的内容,它也失败了svn出口。
我们发现其中一个版本是腐败的,无论如何,我们可以修复或修复一个版本库,因为我们需要移动版本库。
你有备份或镜像,你可以得到修订?
我实际上有一个确切的错误今天在我的镜像之一,通过从另一个镜像复制revprops(损坏的文件)能够修复一个损坏的版本0。 它成功了,我没有任何问题。
这可能不是一个推荐的方法,因此用户要小心。 备份备份备份。
我们设法通过在损坏的修订版本的任一侧执行svn转储,然后使用cat或type将这两个文件合并在一起,具体取决于您使用的平台,然后将其导入到新的存储库中。
这样做后,我进行了validation,并完成到最后,所有的历史修订现在可以看到之前它无法通过损坏的修订文件。
这对我有效。 我刚刚修复了损坏的文件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显示下一行的长度)
经过几次手动备份/恢复操作,我的存储库开始发出相同的错误。 我检查了存储库根目录中的最后一个修订版本,并检测到db / revprops /中放置的db / revs /目录中的一个文件(这些文件在大小上有很大的不同,所以我很快就注意到了)