1

在过去的几天里,我们的一个存储库似乎已经损坏。我不太确定它发生了什么,只是它突然抱怨存储库中不存在的文件,即使它们是很久以前添加的文件。

我进行了验证,输出如下:

svnadmin: E160004: Corrupt representation '412 454 434 1049 (null) 69d49eee40d6ed46db3a7925d1f6b8bacb11e199 (null)'
svnadmin: E160004: Malformed representation header at F:/ShareCopies$/ICCServer01/svn/Repositories/VisaCardCless/db/revs/0/412:559

如果我没看错,实际的损坏位于 r412 和 r559 之间。当前版本为 672。

现在幸运的是,我在损坏之前有一个完整的 repo 转储,但它只转到 r647,所以我们在那里遗漏了一些提交。我已经通过将它加载到一个新的 repo 并验证它来验证这个转储 - 回来干净。

所以,理论上,我有一个干净的转储到 r647,我应该能够在损坏的 repo 上从 r648 转储到 r672,然后重新加载增量备份。但是,这是绊脚石。当我尝试从 648 开始转储时,我收到另一个损坏的表示错误,这次是在 567:1778。我不知道这意味着什么,因为 repo 没有超过 672,所以也许我读错了错误消息。这确实会创建一个转储文件,但如果我尝试加载它,我会收到一条关于文件意外结束的消息。

无论如何,我对如何完全恢复这个 repo 有点困惑。是否有任何肮脏的方法可以使用来自良好转储的文件来修复损坏的数据库?

4

0 回答 0