重构Subversion存储库

时间:2009-07-14 21:35:44

标签: svn version-control tortoisesvn branch

我已经阅读了svn move命令,但未能以正确的方式使用它...这是我的情况:我有一个包含5个组件的项目。现在,我为每个组件创建了单独的存储库,它们都具有 flat 结构。我想将所有这些组件移动到一个存储库中,以便我最终得到一个类似的结构:

/Project
    /Component1
        /branches
        /tags
        /trunk
    /Component2
        /branches
        /tags
        /trunk

每个组件的现有代码都在每个组件的trunk目录中,所有这些都设置为我们分支/标记它。

完成此任务的svn move命令的一个示例是 REAL 有用。

提前致谢,

吉姆

4 个答案:

答案 0 :(得分:3)

由于您正在跨越不同的subversion存储库,因此您只需要移动命令就可以使用更多,因为这只能在单个命令中运行。关于如何跨存储库进行移动,有一篇很好的文章here

答案 1 :(得分:2)

另一次尝试(因为我在第一个答案中错过了“单独的存储库”部分):

  • 创建新存储库并为所有组件设置trunk / branches / tags文件夹
  • dump现有存储库
  • 将dump-files加载到新存储库的相应trunk文件夹中(参见this page底部的示例)

这就是我将几个存储库“合并”为一个存储库的方式。

BTW:这是使用subversion命令行客户端

完成的

答案 2 :(得分:1)

这个提示列表中的第2个是如何移动的东西: http://onlamp.com/pub/a/onlamp/2004/08/19/subversiontips.html

另一种方法是从各个存储库执行导出,以便在没有SVN信息的情况下自行获取项目文件。然后,您可以将它们添加到新存储库中。

答案 3 :(得分:0)

我认为重新组织存储库的最简单方法是使用TortoiseSVN的“存储库浏览器”。在那里,您可以像在Windows资源管理器中一样移动和重命名文件夹。

所以,如果你有

/Project
  /Component1
    /<source files>
你可以:

  • Component1重命名为trunk
  • 创建新文件夹Component1
  • 将主干移至Component1
  • 添加branchestags文件夹
  • 对其他组件执行相同的操作