【问题标题】:Merge Multiple SVN Projects [duplicate]合并多个SVN项目[重复]
【发布时间】:2010-09-24 21:03:59
【问题描述】:

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

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

[编辑] 哎呀,被Combining multiple SVN repositories into one欺骗了

【问题讨论】:

标签: svn version-control svn-administraton


【解决方案1】:

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

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

【讨论】:

  • 如果你这样做,请记住更新在外部是递归的,但提交不是,如果你需要在顶层进行标记或分支,你将不得不做一些额外的工作。
【解决方案2】:

也许我一直在使用分布式版本控制锤子工作太多,而我现在看到的只是分布式钉子。但我再次不得不说,这可能是 DVCS 的工作。

我会尝试弄乱 git-svn 或类似的东西。将每个“项目”导入其自己的 git 存储库,然后将它们相互 git pull。解决所有冲突,并在一切完成后,将历史记录导入 Subversion。

但是在您完成合并所有存储库之后,您的团队可能最好只使用分布式控制...

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      相关资源
      最近更新 更多