将SVN repo的一部分复制到新的仓库?

Mar*_*ing 8 svn version-control

目前,我有一个庞大的SVN存储库,其中包含许多不同的项目,如下所示:

/
 Project1/
          trunk/
          tags/
          branches/
 Project2/
          trunk/
          tags/
          branches/
 Project3/ 
          (etc...)
Run Code Online (Sandbox Code Playgroud)

但是,我现在正试图将其分解为单独的存储库(由于各种原因),并且我希望每个项目都有以下内容:

/
 trunk/
 tags/
 branches/
Run Code Online (Sandbox Code Playgroud)

如果可能,所有历史和外部都应保持不变.但是,我不确定这是否可以实现.我在SO上看过几个与此类似的问题,但没有一个完全解决我在这里遇到的问题.基本上我试图从旧存储库中"拉出"一个子目录及其全部内容和历史记录,并将整个数据放入其自己的(新)存储库中.

我问不可能吗?

Ste*_*fan 9

使用

svnadmin dump path/to/repository > repo.dmp
Run Code Online (Sandbox Code Playgroud)

然后使用svndumpfilter仅将子树加载到新的存储库中.


Tob*_*mer 5

从 SVN 1.7 开始你可以使用

svnrdump dump path/to/repository > dump
Run Code Online (Sandbox Code Playgroud)

得到转储。虽然 Stefans 解决方案有效,但它确实需要访问托管存储库的服务器。svnrdump 通过网络与您可以读取的任何存储库一起工作。