代码之家  ›  专栏  ›  技术社区  ›  Stacey Richards

如何从包含多个项目的SVN存储库中转储一个项目?

  •  40
  • Stacey Richards  · 技术社区  · 16 年前

    我正在一个SVN存储库中处理许多项目。我需要将一些项目从该存储库中移到单独的存储库中,每个项目一个,保留历史。

    我可以用 svnadmin dump 转储整个存储库并 svnadmin load 它进入了另一个存储库,但是我找不到一种方法只从原始存储库中转储一个项目,这样我就可以将它载入到新的存储库中。这有可能吗?如果是这样怎么办?

    2 回复  |  直到 16 年前
        1
  •  63
  •   bahrep Ahamed    10 年前

    你可以使用 svndumpfilter 这样做的实用程序。SVN的书有一个 good explanation 如何做到这一点。

    例如,一种方法是:

    
    $ svnadmin dump /path/to/repo 
         | svndumpfilter include /proj > dump-file
    $ svnadmin create /new/proj/repo
    $ svnadmin load --ignore-uuid /new/proj/repo < dump-file
    $ svn rm file:///path/to/repo/proj
    
        2
  •  0
  •   Jose Gómez    9 年前

    只需在@avi answer和@kit comment中添加一小部分内容。

    如果你使用 svndumpfilter ,您可能会丢失加载存储库所需的提交。( source )

    在我看来:

    cat dump | svndumpfilter --drop-empty-revs --renumber-revs include trunk/project > project.dump 
    svnadmin load --ignore-uuid /opt/svn/newlocation < project.dump
    <<< Started new transaction, based on original revision 1 
    svnadmin: File not found: transaction '0-0', path 'trunk/project'
    

    解决方案是提交一个上层目录 trunk 第一。

    推荐文章