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

时间:2009-06-17 20:16:42

标签: svn version-control

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

/
 Project1/
          trunk/
          tags/
          branches/
 Project2/
          trunk/
          tags/
          branches/
 Project3/ 
          (etc...)

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

/
 trunk/
 tags/
 branches/

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

我问不可能吗?

2 个答案:

答案 0 :(得分:9)

使用

svnadmin dump path/to/repository > repo.dmp

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

答案 1 :(得分:4)

从SVN 1.7开始,您可以使用

svnrdump dump path/to/repository > dump

获得转储。虽然Stefans解决方案有效,但它确实需要访问服务器hostig repo。 svnrdump可以通过你可以阅读的任何仓库在网上工作。