我正在为一个未使用单个顶级目录导入源的项目管理 svn 存储库。结果,大约有 15 个独立的“项目”,而不是一个。如何在保留更改历史记录的同时将它们合并到一个文件夹中?
*提示:svn move 在这种情况下不起作用。
[编辑] 哎呀,愚蠢的将多个 SVN 存储库合并为一个
我正在为一个未使用单个顶级目录导入源的项目管理 svn 存储库。结果,大约有 15 个独立的“项目”,而不是一个。如何在保留更改历史记录的同时将它们合并到一个文件夹中?
*提示:svn move 在这种情况下不起作用。
[编辑] 哎呀,愚蠢的将多个 SVN 存储库合并为一个
如果您不关心保留其中一个存储库的所有历史记录,您可以在一个项目的存储库下创建一个新目录,然后导入另一个。
如果您关心保留两者的历史记录,那么您可以使用 'svnadmin dump' 转储一个存储库,并使用 'svnadmin load' 将其加载到另一个存储库。修订号将关闭,但您仍将拥有历史记录。
也许我在分布式版本控制锤上工作太多了,我现在看到的只是分布式钉子。但我再次不得不说,这可能是 DVCS 的工作。
我会尝试弄乱 git-svn 或类似的东西。将每个“项目”导入其自己的 git 存储库,然后将它们相互 git pull。解决任何冲突,一切完成后,将历史记录导入 Subversion。
但是,在您完成合并所有存储库之后,您的团队可能最好只使用分布式控制......
您可以创建一个新的顶级项目,使用 svn:externals 指向所有其他项目并将它们放在适当的子目录中。
svn propedit svn:externals top_dir
)。