我看一下使用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
这个稍微复杂一点,因为当你想要创建一个新服务时,你需要更新好的发行版本并用这个创建一个新的分支。你不应该改变父母。
每项策略工作。我应该用哪个女巫?也许你有更好的东西。