我们正在尝试实施ALM Rangers在最新的Visual Studio TFS Branching and Merging Guide中描述的“基本双分支计划”。根据指南:
基本分支计划包括MAIN、DEV和RELEASE分支,为您的下一版本提供并发开发,为测试提供稳定的MAIN分支,并为任何阻止发布的错误修复提供RELEASE分支。通过从MAIN创建其他开发分支来支持多个开发区域。这些分支是彼此的同级和MAIN的子级。
通过为每个产品发布创建发布分支来支持其他发布。每个发布分支都是MAIN的子级,彼此同级(例如,2.0版本的发布分支与3.0版本的发布分支均为MAIN的子级)。如果仅在生产中支持单个发布,则可以考虑使用单个发布分支,并直接在此分支上进行错误修复。创建RELEASE分支后,MAIN和开发分支可以开始获取批准用于下一产品发布的更改。
我们还没有决定是否要使用单个发布分支(并标记发布),还是为每个发布创建一个新的发布分支。然而,有一些问题适用于任何一种方式,似乎指南中没有涉及。
我的主要问题是:在什么时候应该创建一个RELEASE分支(或者如果我们这样做的话,将测试过的代码移到单个RELEASE分支)?
1. 我的第一反应是只有在准备发布时才创建它,但是这会为下一个迭代的开发和测试创建死锁;在RELEASE分支创建之前,您无法将这些更改检入到MAIN中(如果这样做,就更难分离出您只想要进入RELEASE的更改)。
2. 第二个想法是在迭代开始时创建RELEASE分支,并且随着更改在MAIN中通过测试,将它们合并到当前RELEASE分支。一旦到达迭代结束,我们可以锁定该RELEASE分支,并为下一个迭代创建一个新的分支。这听起来很可行,但我没有看到任何讨论,所以我想看看人们正在做什么。
基本分支计划包括MAIN、DEV和RELEASE分支,为您的下一版本提供并发开发,为测试提供稳定的MAIN分支,并为任何阻止发布的错误修复提供RELEASE分支。通过从MAIN创建其他开发分支来支持多个开发区域。这些分支是彼此的同级和MAIN的子级。
通过为每个产品发布创建发布分支来支持其他发布。每个发布分支都是MAIN的子级,彼此同级(例如,2.0版本的发布分支与3.0版本的发布分支均为MAIN的子级)。如果仅在生产中支持单个发布,则可以考虑使用单个发布分支,并直接在此分支上进行错误修复。创建RELEASE分支后,MAIN和开发分支可以开始获取批准用于下一产品发布的更改。
我们还没有决定是否要使用单个发布分支(并标记发布),还是为每个发布创建一个新的发布分支。然而,有一些问题适用于任何一种方式,似乎指南中没有涉及。
我的主要问题是:在什么时候应该创建一个RELEASE分支(或者如果我们这样做的话,将测试过的代码移到单个RELEASE分支)?
1. 我的第一反应是只有在准备发布时才创建它,但是这会为下一个迭代的开发和测试创建死锁;在RELEASE分支创建之前,您无法将这些更改检入到MAIN中(如果这样做,就更难分离出您只想要进入RELEASE的更改)。
2. 第二个想法是在迭代开始时创建RELEASE分支,并且随着更改在MAIN中通过测试,将它们合并到当前RELEASE分支。一旦到达迭代结束,我们可以锁定该RELEASE分支,并为下一个迭代创建一个新的分支。这听起来很可行,但我没有看到任何讨论,所以我想看看人们正在做什么。