Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 多个项目的源代码结构_Version Control_Tfs_Continuous Integration_Branching And Merging_Continuous Deployment - Fatal编程技术网

Version control 多个项目的源代码结构

Version control 多个项目的源代码结构,version-control,tfs,continuous-integration,branching-and-merging,continuous-deployment,Version Control,Tfs,Continuous Integration,Branching And Merging,Continuous Deployment,背景: 3-5名程序员使用TFS。我们支持传统应用程序以及构建新应用程序。我正在实施持续交付的要素,我希望有一个良好的结构开始。目前,应用程序之间的相互依赖性很小,但将来会有一些共享组件 我计划实现一个“单主干”分支策略(换句话说,没有分支),除了极少数需要长功能分支的情况——我将努力确保永远不会发生这种情况 问题: 鉴于此,哪种源代码结构更好?为什么?选择其中一种(工作区等)是否会产生重大影响 单一主支路 与每个应用程序的主分支相比 根据我的经验,我发现对于具有单独开发周期的事物,最好使用单独

背景:

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

我计划实现一个“单主干”分支策略(换句话说,没有分支),除了极少数需要长功能分支的情况——我将努力确保永远不会发生这种情况

问题:

鉴于此,哪种源代码结构更好?为什么?选择其中一种(工作区等)是否会产生重大影响

单一主支路

与每个应用程序的主分支相比


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

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


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

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

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


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

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

我喜欢在一个主分支中开发所有代码。然后使用配置设置基本上禁用模块进行生产,并启用它进行测试,直到它准备好发布。附加的好处是,模块(DLL)已经打包好用于发布,因为您可以尽早且经常发布

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