1

我正在开发一个有四个不同项目的软件。这些项目中的每一个都存储在一个单独的 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

是否有可能做到这一点?我已经查看了将多个 SVN 存储库合并为一个,其中讨论了如何trunk branches tags在每个项目中拥有,但我希望项目包含在不同的标准 SVN 文件夹中(除非有充分的理由不这样做)。

4

1 回答 1

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

并对要合并的其他存储库执行相同的操作。

于 2012-06-19T21:03:29.727 回答