SVNAdmin 加载返回校验和不匹配

SVNAdmin 加载返回校验和不匹配

我正在尝试将 svn 转储文件加载到我的 RHEL 服务器上。转储文件是从我们旧的 Ubuntu 服务器加载的,我使用了svnadmin create reponame然后svnadmin load --quiet reponame < dumpfilename

过了一会儿,我收到以下消息:

svnadmin: Checksum mismatch,   
file '/images/lang_cards/large/2001_Lang_Valentines_inside_large.jpg':
expected:  97b1f37b81463ac88a3c2c18abfbb329
actual:  944edbcc7684cb736eca5ed2c0d1c12c

我怎样才能绕过这个错误并继续加载转储文件?

谢谢!

答案1

可能性包括损坏的存储库、传输过程中损坏的转储文件或手动编辑的转储文件(尝试更改路径……?)。

如果您尝试更改路径,也许任何修补都会贪婪地触及修订内容,而不仅仅是修订条目标题。

如果您无法重新转储并重试(或者这样做会出现同样的问题),请尝试使用 svndumpfilter 排除该文件以及任何有问题的其他文件。

要恢复这些文件,您可以非常小心地修补转储文件以获得正确的校验和(Text-content-md5?但验证文件没有损坏),或者从签出/工作副本中获取它们(或从转储中的文本和增量中提取和重建)。

答案2

使用以下方法过滤转储后出现此问题https://github.com/jasperlee108/svndumpfilterIN

已删除 md5 校验和:

sed -i '/Text-copy-source-md5/d' your.dmp

然而,可能会产生一些后果...

答案3

我建议使用svndumptool 脚本

  • check使用命令验证转储
  • 修复特定于平台的行尾(eolfix)并生成正确的校验和
  • 或转储splitmerge
  • 以及更多

在您的特定情况下,该命令sanitize应该会修复转储中的校验和。但随后需要对加载的存储库内容进行深入检查。

这确实是高级 Subversion 存储库转储操作的必备工具。

相关内容