【问题标题】:how to take svndump of a proejct from a very large repo如何从一个非常大的仓库中获取项目的 svn 转储
【发布时间】:2014-07-16 05:26:50
【问题描述】:

我们有带有项目特定分支和标签的存储库。这里只是我的存储库的快照:

  1. 项目代码 =====>>分支机构
    ---- R1
    ---- R2
    ---- R3

      =====>> tags 
    

--- R1_tag
--- R2_tag

项目数据库
=======>> 分行
---- R1
---- R2
---- R3

          ======>>tags  

--- R1_tag
--- R2_tag

现在我只想转储项目代码中的一个分支,然后将此转储加载到同一服务器上的其他存储库。 我尝试了以下操作,但 导致空修订 被加载到其他 repo 中。

svnadmin dump /path/to/repo | svndumpfilter include /proj > dump-file
svnadmin create /new/proj/repo
svnadmin load --ignore-uuid /new/proj/repo < dump-file

并且我无法按顺序运行以上命令,因为 Repo 太大,创建转储可能至少需要 10 个小时。此外,忽略 UUID 是为了删除与当前存储库的链接或任何其他原因? 请帮助使用特定命令。

【问题讨论】:

    标签: svn svnadmin svndump


    【解决方案1】:

    svndumpfilter 可以选择删除空修订,--drop-empty-revs

    如果您没有使用--ignore-uuid 的特定理由,请尝试不使用它。如果它有效,你就不需要它。

    您可以在没有中间转储文件的情况下简化转储-过滤-加载操作,如下所示:

    svnadmin create /new/proj/repo
    svnadmin dump /path/to/repo | svndumpfilter include /proj --drop-empty-revs | svnadmin load /new/proj/repo
    

    【讨论】:

    • 我确实尝试过,但“svnadmin dump /path/to/repo”从 rev#1 开始,但我需要的项目位于 rev#50,000 之后。所以这是正常的还是我在这里做错了什么。我也尝试了“--drop -empty revs”,但在加载时修订集仍然是空的,并且没有对修订执行任何操作
    • 我对此进行了测试,它正确排除了空修订。还有另一个标志,--drop-all-empty-revs,但我不确定区别。我不能在晚上之前再次测试,在此期间你可以试一试。
    猜你喜欢
    • 2010-09-25
    • 2012-09-04
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 2015-02-18
    • 1970-01-01
    相关资源
    最近更新 更多