我正在开发一个有四个不同项目的软件。这些项目中的每一个都存储在一个单独的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文件夹中(除非有充分的理由不去)。
答案 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执行相同的操作。