如何从一个非常大的仓库中获取一个项目的svn转储

时间:2014-07-16 05:26:51

标签: svn svnadmin svndump

我们拥有包含项目特定分支和标签的存储库。这里是我的回购快照:

  1. 项目代码     =====>>分枝
    ---- R1
    ---- R2
    ---- R3

      =====>> tags 
    
  2. --- R1_tag
    --- R2_tag

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

              ======>>tags  
    

    --- R1_tag
    --- R2_tag

    现在我想在项目代码中转储分支,然后将此转储加载到同一服务器上的其他仓库。 我试过跟随,但导致空修订被加载到其他仓库中。

    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是为了删除链接到当前存储库还是其他任何原因? 请帮助解决具体的命令。

1 个答案:

答案 0 :(得分:0)

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

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

您可以在没有中间转储文件的情况下简化dump-filter-load操作,如下所示:

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