合并多个SVN存储库

时间:2011-03-03 20:02:08

标签: svn version-control

我正在尝试将多个源存储库合并在一起,在此过程中维护版本历史记录。我已经在svnadmin转储/加载过程中做了很多阅读,但是有一件我仍然缺失。

每个源存储库都使用标准的“trunk”和“branches”设置进行设置。这一切都很好。问题是我想把东西合并在一起时按摩路径。例如......

我见过的许多方法都可以让你创建一个这样的结构:

/project1
/project1/trunk
/project1/trunk/html
/project1/branches
/project2
/project2/trunk
/project2/trunk/html
/project2/branches

但是,我希望我们的最终结构是这样的:

/trunk
/trunk/project1
/trunk/project1/html
/trunk/project2
/trunk/project2/html
/branches

原因是:所有项目都是交织在一起的。 Project1可能是我们的后端软件,project2我们的前端软件,project3我们的cron作业等。基本上,它是一个组合系统,项目特定的分支似乎只会让我们的生活更加困难。

那就是说,问题出现在我如何将旧的目录结构翻译成新的。想法?

2 个答案:

答案 0 :(得分:2)

我这样做的方法是使用正常的svn movesvn copy命令预先准备“新”结构并执行转储&之后加载。 尝试使用适合您的新存储库的格式使用svndumpfilter按下转储文件很复杂且容易出错。

答案 1 :(得分:2)

它可能满足您的需要,按原样合并存储库,使用单独的分支,然后在新的合并存储库中移动,以便最新版本具有您想要的文件。与尝试编辑历史记录相比,这项工作要少,但您仍然可以保留历史记录,但您可能需要在复制后启用显示历史记录。然后,您可以获得新修订的首选结构,即使查看旧版本也会将内容置于错误的位置。