多个项目的源代码结构

时间:2012-11-08 22:00:24

标签: version-control tfs continuous-integration branching-and-merging continuous-deployment

背景

使用TFS的3-5名程序员。我们支持旧版应用以及构建新应用。我正在实施持续交付的元素,我希望有一个良好的结构开始。目前,应用程序的相互依赖性很小,但将来会有一些共享组件。

我计划实施一个“单主干”分支策略(换句话说,没有分支),除了非常罕见的情况,需要一个长的功能分支 - 我将努力确保永远不会发生。

问题:

鉴于此,哪种源代码结构更好,为什么?对于选择其中一种(工作空间等)是否有任何实质性影响?

单一主要分支

$/MAIN/src/ApplicationA/ApplicationA.sln
$/MAIN/src/ApplicationA/Project1.csproj
$/MAIN/src/ApplicationA/Project2.csproj
$/MAIN/src/ApplicationB/...
$/MAIN/src/SharedModule/...

VS。 每个应用程序的主要分支

$/ApplicationA/MAIN/src/ApplicationA.sln
$/ApplicationA/MAIN/src/Project1.csproj
$/ApplicationA/MAIN/src/Project2.csproj
$/ApplicationB/MAIN/src/...
$/SharedModule/MAIN/src/...

2 个答案:

答案 0 :(得分:2)

根据我的经验,我发现对于具有不同开发周期的事物,最好使用单独的分支。

如果您要将它们作为单个包一起发布,并且它们是作为单个产品开发的 - 单个主分支更合适。

如果每个应用程序可能在不同时刻发布,则每个应用程序的主分支似乎更合适。

答案 1 :(得分:2)

我喜欢在一个主分支中开发所有代码。然后使用配置设置基本上禁用生产模块并启用它进行测试,直到它准备好发布。额外的好处是模块(dll)已经为发布打包,因为你很早就发布了。