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

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

编辑] whops,欺骗 将多个 SVN 存储库合并为一个

有帮助吗?

解决方案

如果你不关心保留库之一的所有的历史,你可以创建一个在项目库中一个新的目录,然后导入其他。

如果你关心留住来自历史,那么你可以使用“svnadmin的转储”转储一个资料库,并使用“svnadmin负荷”加载到其他仓库。该版本号将被关闭,但你仍然有历史的。

从这里复制: http://subversion.tigris.org/faq.html #多合并

其他提示

也许我已经工作了太多与分布式版本控制锤和所有我在这一点上看到分布指甲。但是,我不得不再次说,这可能是对DVCSs工作。

我会尝试用git-svn的或类似的东西上浪费。导入每一个“项目”到自己的Git仓库,并从彼此的git他们拉。解决任何冲突和,万事俱备后,导入历史回颠覆。

但你的团队可能会更好只使用分布式控制完成反正合并所有回购后...

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

  • 开发人员只需要检查您的新顶级项目(svn 将自动遵循 svn:externals 并引入其他项目)
  • 将保留完整的版本历史记录,新的更改将自动提交到相关子项目
  • 大约需要 5 分钟来实施(创建新的顶级项目并运行 svn propedit svn:externals top_dir).
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top