我有一个subversion存储库,其中包含许多SO子文件夹,对应于组成我的项目的各种应用程序、配置文件、‘ll等(我称之为“模块”)。现在我们开始“分支”到几个相关的项目中。也就是说,每个高级项目都将使用许多模块,这些模块可能会在不同的项目中稍作修改。项目数(~5)小于模块数(~20)
现在,我正在尝试找出如何组织存储库。在每个模块的基础上保留顶层的子文件夹,每个项目都有子文件夹,这有意义吗?或者顶层应该是每个项目,每个项目都有自己的模块子文件夹:
存储库:
module 1
Project 1
Project 2
...
Project 5
module 2
Project 1
....
Project 5
....
module 20
Project 1
...
Project 5-或者-
存储库:
Project 1
module 1
module 2
...
module 20
Project 2
module 1
module 2
...
module 20
...
Project 5
module 1
module 2
...
module 20发布于 2008-09-25 14:57:40
在顶层通过项目进行组织似乎是最好的,因为您将希望签出整个分支并拥有项目的工作副本。如果按模块进行组织,则必须进行多次签出(每个模块对应一个模块),以便将项目构建到可以使用的程度。
将项目和模块分开可能是有意义的,例如:
Projects
Project 1
Project 2
...
Modules
Module 1
Module 2
...如果您将其与svn 和/或结合使用,您可以为需要不同模块版本的项目支持不同的分支,但当项目恰好共享相同版本的模块时,仍然可以从拥有单一模块源中受益。
发布于 2008-09-25 14:45:24
我会按项目组织,然后再按模块组织(你的第二个例子)。主要原因是管理一个项目比管理模块有更多的开销,至少对我来说是这样。
每个不同的项目都需要自己的构建脚本设置、属性文件等,并且在您的计算机上跟踪5个工作副本要比跟踪20个工作副本容易得多。
发布于 2008-09-25 14:46:02
我更喜欢第一个。
虽然每个存储库都需要付出额外的努力来维护,但我希望我的修订号对项目有意义。
也就是说,我们的旗舰产品的版本是48123,我们的新项目的版本是31。如果您有存储库间的依赖关系,那么可以使用svn外部变量。
https://stackoverflow.com/questions/133777
复制相似问题