在发布之前,我已经通过了TFS游侠指南.
我在项目中有以下要求:
目前,我们在CODE下的TFS中有一个代码库,开发人员代码在那里.以上分支到DEV镜像环境代码DEV分支分支到QA分支
如果需要热修复,则直接在QA分支上修复,然后反向合并到下面的分支.
在第一次开发之前这很好,但我觉得这需要重新构建,以便为将来的版本开发提供更好的可扩展性.
当前的问题:
记住以上所有内容,我正在考虑重新设计我们的TS分支策略,如下所示:

按照这种方法:
开发将在dev分支上进行,例如DevRel1分支
如果开发人员需要处理大型功能,他将在一个分支上工作,例如从Dev分支分支的Feature 1分支.在
建成之后,他合并回Dev分支.
这太复杂了吗?可以简化,这看起来很好,或者需要纠正吗?
我们目前正在使用TFS 2008.
我的建议是让事情尽可能简单。恕我直言,要避免的主要事情是:
因此,您绝对应该使用分支来支持您的开发需求,但尽量保持您的方案尽可能简单。
我们使用与您类似但更简单的方法。那是:
我们的其他关键策略是:
使用持续集成、单元测试、回归测试、门控签入和持续 QA 测试来保持开发分支尽可能稳定。我们的目标是任何日常构建“应该”足以直接交付给客户。实际上,偶尔会在短时间内(几天)失去稳定性,但大多数情况下,当这种情况发生时,我们仍然在几天内获得可发布的版本。
推迟创建分支直到绝对需要时。在 TFS 中,您可以从代码库历史记录中的任何点追溯创建分支。因此,当我们准备启动发布分支时,我们实际上并不创建分支,而只是将当前版本构建发送到 QA 部门进行测试。如果他们对该构建的质量感到满意,它将按原样提供给客户,而不会创建任何分支。只有当我们需要修复该版本的错误时,我们才真正创建分支(从构建原始候选版本的时间点开始,因此我们知道它从经过良好测试的代码快照开始)并招致(小)所需的成本。
作为旁注,我们还尝试了一个 Dev 分支,对 QA 分支进行门控签入,对 Release 分支进行门控签入,但这效果很差(主要是我们发现它给所有开发增加了相当大的开销。我们喜欢频繁签入,并且每次签入的两个额外的测试和合并步骤都很昂贵。在最坏的情况下,如果您删除、移动或重命名 TFS 中的文件,它会变得非常不稳定,甚至简单的合并也会失败 - 这些问题很难解决,而且很耗时。我们认为 TFS 中的合并仍然不够轻量级和强大,不足以支持这种方法,除非您准备投入大量时间来管理分支。另一方面,如果开发人员在签入时非常小心,那么情况会少得多所以我们换回了上面的轻量级方法,这增加了风险,但最大限度地减少了合并的需要——对于我们(拥有一个规模较小且纪律严明/有能力的团队)来说,这种方法效果更好。