[注意:我从 serverfault 转移了这个,因为 stackoverflow 可能更合适]
对于我们正在进行的项目,我们正在开发一个 WordPress 主题、一些 WordPress 自定义插件、一个 iOS 应用程序和一个 Android 应用程序。我们通过内部 Subversion 服务器处理所有源代码,每个项目都有自己的存储库。
我的问题是:这个项目的 SVN 存储库的最佳布局是什么?我可以将它放入 1 个存储库中,还是应该为主题、插件和移动应用程序创建单独的存储库?
最佳答案
问题不在于是否单独的存储库,而是是否应该将它们作为单独的项目进行管理,这意味着它们是否会被分支并合并在一起。在 Subversion 中,您可以在一个存储库中拥有多个项目,因此您始终可以只有一个存储库。
答案取决于模块将如何紧密地联系在一起。如果您希望一个组件的任何版本在合理范围内与其他组件的任何其他版本一起使用,那么它们应该作为单独的项目进行管理(每个项目都有自己的 trunk
和 branches
,因此您将拥有 theme/trunk
和 theme/branches
和 plugin/trunk
ETC。)。如果您预计修改通常会涉及多个组件,则必须将它们作为单个项目进行管理(一个 trunk
和 branches
,因此您将拥有 trunk/theme
和 trunk/plugin
等)。
在旁注中,我建议重新考虑颠覆的选择。较新的分布式系统(按受欢迎程度排序为 Git 、 Mercurial 和 Bazaar )提供了更大的灵 active 和出色的分支和合并。那些年之后,颠覆实现仍然显示出粗糙的边缘,主要是因为底层模型不太适合分支。
与 subversion 不同,分布式系统每个存储库始终有一个项目,因为分支在此处是单独的概念,因此如果您决定拥有单独的项目,您将拥有单独的存储库(无论如何在一台服务器上)。
关于svn - 多源项目的最佳 SVN 存储库布局是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9262943/