拆分 SVN 仓库

6
当我尝试搭建 SVN 服务器时,不知怎么地,我将我们的“repositories”文件夹变成了单一的存储库,此后创建的每个存储库都被视为该存储库的一部分。现在,有多个项目存在于同一个存储库中,需要分别处理。是否有一种方法可以将这些文件夹分离成单独的存储库呢?
编辑:似乎可以使用“svnadmin dump”和“svnadmin load”来完成此操作,但我不知道如何转储存储库内的文件夹,而不是转储整个存储库。

https://dev59.com/AlXTa4cB1Zd3GeqP6vxg - sdolgy
@sdolgy 看起来有点有帮助,但我认为它们不是在不同的分支中,而是在主干中的不同文件夹中。我会更新我的问题以澄清。 - GSto
1个回答

11
你可以通过执行 svnadmin dump 命令来导出整个版本库,但是在导入时,你可以使用 svndumpfilter 来过滤掉不需要导入的部分。使用方法如下:
$ svnadmin dump svn_repos > svn.dump  #Entire repository
$ svndumpfilter include "foo" < svn.dump > foo.dump #Filter out just "foo"
$ svnadmin load --parent-dir / svn_foo_repos < foo.dump  #Load "foo" in own repos

我有一段时间没有使用它了,因此我的记忆可能有点生锈,但是Subversion Red-Bean书非常好。


这听起来是一个不错的解决方案。我试着摸索了一下,也有类似的想法,但我是通过过滤 svnadmin dump 的输出来生成多个转储文件,但这似乎是更好的处理方式。 - GSto
请注意,使用此方法重新加载时,修订版本号可能会重新编号。这对您可能不重要,但如果您依赖于特定的修订版本号(例如在错误跟踪器中使用它们),那么这可能会有问题。 - the_mandrill
5
实际上,我刚刚注意到svndumpfilter现在有一个--preserve-revprops标志,就是为了这个目的。 - the_mandrill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接