将多个SVN存储库与单个文件夹组合用于主干分支标记

时间:2012-06-18 15:42:00

标签: svn repository

我正在开发一个有四个不同项目的软件。这些项目中的每一个都存储在一个单独的SVN存储库中,其中包含一个主干和两个分支。

所以看起来像这样

repo1
    trunk
        src
    branches
        branch1
            src
        branch2
            src

etc...

repo4
    trunk
        src
    branches
        branch1
            src
        branch2
            src

我想要做的是将这些存储库组合到一个存储库中,以便我可以在单个存储库中执行切换,合并和历史记录,而不是处理四个不同的存储库。

所以我设想它最终看起来像这样

repo
    trunk
        project1
            src
        etc...
        project4
            src
    branches
        branch1
            project1
                src
            etc...
            project4
                src
        branch2
            project1
                src
            etc...
            project4
                src

有可能这样做吗?我查看过Combining multiple SVN repositories into one讨论了如何在每个项目中使用trunk branches tags,但我希望这些项目包含在不同的标准SVN文件夹中(除非有充分的理由不去)。

1 个答案:

答案 0 :(得分:1)

使用我链接的问题的答案和Wrikken的建议,我设法让这个工作。

第一步是转储现有存储库

svnadmin dump > project1.dmp

现在在组合仓库中创建一个新文件夹

svn mkdir http://myserver/svn/repo/project1

然后将它们加载到新存储库

svnadmin load --parent-dir "project1" < project1.dmp

现在进入project1文件夹并移动

svn mv http://myserver/svn/repo/project1/trunk http://myserver/svn/repo/trunk/project1
svn mv http://myserver/svn/repo/branches/branch1 http://myserver/svn/repo/branches/branch1/project1

现在删除project1目录

svn delete http://myserver/svn/repo/project1

并对要合并的其他repos执行相同的操作。