3

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

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

[编辑] 哎呀,愚蠢的将多个 SVN 存储库合并为一个

4

3 回答 3

2

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

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

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

于 2008-12-02T03:09:41.667 回答
2

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

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

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

于 2008-12-02T03:10:28.827 回答
0

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

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