Build和InRelease的{TFS分支策略

时间:2015-10-07 19:15:14

标签: tfs tfsbuild ms-release-management

我看一下使用TFS / Build / InRelease进行远程项目的最佳方法/策略(在VSS中)。

“最糟糕”的情况(以前发生过):

            Main
2.0 -------------------------------------------->

Release 3.0 |------------------------------------|

Release 2.1    |----------------------|

Release 2.0.1        |---|

3.0 : take 120 days start at day 1
2.1 : take 30 days start at day 20 (to day 50)
2.0.1 : take 2 days start at day 30

首先,我看一下https://vsarbranchingguide.codeplex.com/

所以我做了这样的事情:

/MySystem
/MySystem/[Main]
/MySystem/Release 2.0.1
/MySystem/Release 2.0.1/[Service]
/MySystem/Release 2.0.1/[Release]
/MySystem/Release 2.1/[Service]
/MySystem/Release 2.1/[Release]
/MySystem/Release 3.0/[Service]
/MySystem/Release 3.0/[Release]

Service is a branch from Main. 
Release is a branch from Service.
You should use Release for builds definitions.

使用此策略,我需要为每个版本创建一个新的构建定义,并在InRelease中编辑发布模板(或创建一个新模板)

制作构建定义需要花费一些时间,但我认为值得冒这个风险。

同事建议使用4行(Main,Major,Minor,Hotfix),每行都有一个构建版本和一个发布模板。

这将是这样的:

 /MySystem
    /MySystem/[Main]
    /MySystem/Dev
    /MySystem/Dev/[Major]
    /MySystem/Dev/[Minor]
    /MySystem/Dev/[Hotfix]

将Label用于版本。你需要了解标签,不要忘记你如何使用它并使用它(新人通常只是在某处创建一个新的分支)。

如果我想要每个版本的完整分支:

 /MySystem
        /MySystem/[Main]
        /MySystem/Release
        /MySystem/Release/[Major]
        /MySystem/Release/[Minor]
        /MySystem/Release/[Hotfix]
        /MySystem/Service
        /MySystem/Service/Version 2.0.1
        /MySystem/Service/Version 2.1
        /MySystem/Service/Version 3.0

这个稍微复杂一点,因为当你想要创建一个新服务时,你需要更新好的发行版本并用这个创建一个新的分支。你不应该改变父母。

每项策略工作。我应该用哪个女巫?也许你有更好的东西。

0 个答案:

没有答案