当有几个相关的项目(可识别的、独立的应用程序、共享库)时,您如何准备您的 SVN 服务器目录结构?按分支 > 项目?按项目 > 分支?完全不同的东西?还是为每个项目配备一台 SVN 服务器更好?(考虑到一些项目是密切相关的)
9 回答
标准约定是
- 项目1
- 分支机构
- 标签
- 树干
- 项目2
- 分支机构
- 标签
- 树干
在单个回购中。由于这是最常见的约定,因此某些工具只是希望您的项目可以这样布局。
哪些项目属于哪个回购更多的是一个判断电话。就个人而言,我会从一个 repo 开始,用于由同一组管理的所有项目,例如团队、部门或公司。
查看 subversion book,其中提供了有关推荐存储库布局的部分
这个问题在 SVN 书中占据了一整节。我建议从那里开始,并询问任何不清楚或特定于您的项目的内容。
我会考虑使用externals。如果您有许多相关项目都使用相同的代码库,但您不想将该代码库复制到每个存储库中,请在每个存储库中设置一个外部链接以指向公共代码库。
根/主干/项目文件夹
根/分支/项目文件夹
这样,如果需要,某人无需获得任何分支即可获得所有主线项目。
对于密切相关的项目,我建议:
root > branch > project
通过这种方式,可以检出单个分支并获取该分支中当前的所有代码。
作为维护大型 svn repos 的人,让我告诉你,不要使用统一的 trunk。这将使所有操作变得非常非常慢。除此之外,从更大的 repo 中提取单个项目不仅乏味且棘手,而且当您最终想要剥离一个项目时会导致空间浪费。
为每个项目使用单独的 repos,在 repos 下有一个 trunk 和 tags 目录,并让需要绑定到其他项目的开发人员使用外部,它们的设计方式。
懒惰不是有组织的充分替代品。
我为每个项目使用一个文件夹,然后在每个文件夹中分支。这样,如果不同的团队正在处理每个项目,他们不需要看到整个树,只需要看到他们的分支。
我们为每个项目设置了存储库,因此每个项目都可以有自己的分支/标签等。
此外,对于相互依赖的项目,您可以设置链接存储库,以便共享文件。到目前为止,这对我们来说效果很好,并且被证明是非常灵活的。