【问题标题】:svndumpfilter --drop-empty-revs keeps padding revisionsvndumpfilter --drop-empty-revs 保持填充修订
【发布时间】:2012-03-20 16:53:43
【问题描述】:

我们正在将一个大型 svn 存储库(100k+ revs)拆分为几个较小的存储库。 我正在使用 svndumpfilter (v1.7.2) 来拆分转储和 svndumptool/sed 来过滤大转储。

一切正常,除了过滤后的转储中仍有一些“填充修订”,即使我使用了选项“drop-empty-revs”。

当我们只有不到 10% 的无用“填充修订”时,这并没有太大问题,但有时,新的 repo 只有几百个真正的修订,这些修订隐藏在 30k+ 的“填充修订”中。

这是我使用的命令和包含的修订版

svndumpfilter --drop-empty-revs --renumber-revs include /MyProj < MassiveOldRepo.dump > NewAllCleanRepo.dump

------------------------------------------------------------------------
r3453 | (no author) | 2005-09-29 17:27:54 +0200 (jeu., 29 sept. 2005) | 1 line

This is an empty revision for padding.
------------------------------------------------------------------------
r3454 | (no author) | 2005-09-29 17:28:27 +0200 (jeu., 29 sept. 2005) | 1 line

This is an empty revision for padding.
------------------------------------------------------------------------    

我想知道是否有办法在我过滤转储时不包含这些修订(无需手动从过滤后的转储中删除它们)。

编辑:我要补充一点,我对svndumpfilter 的使用会删除一些空修订,即第一个“真实”修订之前的修订和最后一个“真实”修订之后的修订。

【问题讨论】:

    标签: svn svnadmin svndumpfilter


    【解决方案1】:

    我遇到了同样的问题,即存储库中已包含空修订。从 Subversion 1.7 开始,还有一个未记录的开关允许过滤所有空修订。

    svndumpfilter --drop-all-empty-revs include / < oldrepos.dump > newrepos.dump
    

    更多信息请访问grokbase

    【讨论】:

      【解决方案2】:

      经过数小时的测试,阅读 svndumpfilter 源代码(评论非常好,干得好!),我意识到这些空的修订不是来自我的过滤。

      它们已经在我原来的转储中,日期为 2005 年。

      结论:先检查你的数据!!

      【讨论】:

        【解决方案3】:

        我无法确定您的情况,但就我而言,正是过滤导致了数千条填充消息出现在日志中。我通过包含这两个开关解决了它:

        --drop-empty-revs --renumber-revs
        

        第二个开关是这样的,例如,如果您的过滤器包含 rev 1000-1200,但随后排除了 1201-5000,则它包含的下一个 rev 将编号为 1201,而不是 5001,这将导致创建几千空填充转速。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-18
          • 2017-01-01
          • 2011-12-07
          • 1970-01-01
          • 1970-01-01
          • 2012-03-26
          相关资源
          最近更新 更多