合并多个SVN项目

时间:2008-12-02 02:58:35

标签: svn version-control svn-administraton

我正在为一个项目管理一个svn repo,其中源没有使用单个顶级目录导入。结果,大约有15个独立的“项目”而不是一个。如何在保持更改历史记录的同时将这些文件合并到一个文件夹中?

*提示:在这种情况下,svn move不起作用。

[编辑] 呐喊,Combining multiple SVN repositories into one

的欺骗

3 个答案:

答案 0 :(得分:2)

如果您不关心保留其中一个存储库的所有历史记录,您只需在一个项目的存储库下创建一个新目录,然后导入另一个。

如果您关心保留两者的历史记录,那么您可以使用'svnadmin dump'转储一个存储库,并使用'svnadmin load'将其加载到另一个存储库中。修订号将关闭,但您仍将拥有历史记录。

从这里复制:http://subversion.tigris.org/faq.html#multi-merge

答案 1 :(得分:2)

也许我已经使用分布式版本控制锤进行了太多工作,而且我在这一点上看到的只是分布式指甲。但我再一次不得不说这可能是DVCS的一项工作。

我会尝试使用git-svn或类似的东西。将每个“项目”导入到自己的git存储库中,然后将它们彼此拉出来。解决所有冲突,并在完成所有操作后,将历史记录重新导入Subversion。

但是,在你完成合并所有回购后,你的团队可能会更好地使用分布式控件......

答案 2 :(得分:0)

您可以创建一个新的顶级项目,该项目使用svn:externals指向所有其他项目并将它们放在适当的子目录中。

  • devs只需要查看你的新顶级项目(svn将自动跟随svn:externals并拉入其他项目)
  • 将保留完整版本历史记录,并且新的更改将自动提交给相关的子项目
  • 实施(创建新的顶级项目并运行svn propedit svn:externals top_dir)大约需要5分钟。