svnadmin 转储因其中一个修订版中的错误而停止

Posted

技术标签:

【中文标题】svnadmin 转储因其中一个修订版中的错误而停止【英文标题】:svnadmin dump stopped due to an error within one of the revisions 【发布时间】:2014-02-10 22:13:15 【问题描述】:

在我当前的 svn 存储库上执行 svnadmin 转储时出现错误。转储在特定修订版上出错,因为该修订版包含没有日期和用户信息的错误。但是,使用 Trac 显示用户信息和日期,但 TortoiseSVN 在特定版本上显示###error###。我的一位同事不久前能够执行转储,但他不再在公司工作,我需要将当前版本为 1.4 的旧存储库转移到版本为 1.6.11 的新 svn 服务器。我不确定他是怎么做到的。谁能帮忙? 提前致谢!

【问题讨论】:

【参考方案1】:

假设存储库中的修订总数为 1500,缺少的修订为 750。

    从版本 1 到版本 749 进行存储库转储。

svnadmin dump /path/to/current/repo -r1:749 --incremental > first.dump

    创建新存储库并导入转储first.dump

svnadmin create newsvn_repo

svnadmin load newsvn_repo < first.dump

    导入后,您可以从 newsvn_repo 签出并根据旧 repo 中的修订版 750 添加/更新文件。(前提是您在新 repo 中需要此修订版)

    从修订版 751 到修订版 1500 获取另一个存储库转储并将其加载到新存储库

svnadmin dump /path/to/current/repo -r751:1500 --incremental > second.dump

svnadmin load newsvn_repo < second.dump

【讨论】:

【参考方案2】:

感谢您的回答迪普!我也会记住你的方法。 我发现其中一个修订版是由某人手动修改的,并且修订版文件中的时间戳和字符数不正确。我必须使用实际存储库的 db/revprops 文件夹下的修订号更正文件的时间戳和注释计数,以匹配我的 Trac 页面上显示的内容。转储现在可以工作了。

【讨论】:

以上是关于svnadmin 转储因其中一个修订版中的错误而停止的主要内容,如果未能解决你的问题,请参考以下文章

svnadmin 加载重新编号修订

svnadmin 加载但保留修订号

尝试运行 svnadmin verify 会导致校验和不匹配

svn 迁移但转储存储库的一部分

如何测试我的 svnadmin 验证码?

优化SVN中的SVNAdmin验证