【发布时间】:2011-03-25 01:40:34
【问题描述】:
关于 TFS 分支策略有几个/很多问题,但我无法提出适合我的方案的策略。我的 TFS 项目由一个解决方案组成,其中包含一个 Web 项目、一个业务层项目和一个数据层项目。该项目是报告的门户。报告主要隔离在项目的子文件夹中。然而,整个项目中有一些功能,例如会话管理。在给定的时间段内,工作流可能会发生如下:
- 稳定的代码快照。
- 开始编写报告 A。
- 开始编写报告 B。
- 需要将包含报告 A 的项目推送到我们的 QA 环境中。
- 需要将包含报告 A 和报告 B 的项目推送到我们的 QA 环境中。
- 仅包含报告 B 的项目需要推送到我们的生产环境。
所以基本上,每份报告都有一个完全独立的时间表。我需要能够独立地将代码分支发布到我们不同的环境中。目前,我们没有分支 - 如果项目在报告尚未准备好但包含在项目中时发布,我们只是不添加指向新功能的链接。不是最好的情况。
我最初采用的分支策略是让 Main 位于 QA 和 prod 环境之间,基本上只是一个在分支到生产分支进行生产发布之前合并的容器。每个报告都将在 main 的一个分支上开发。对于我们的测试和 qa 环境,将创建一个来自 main 的分支,并将适当的开发分支合并到这个“提议的更新”分支中。这不起作用,因为我将开发/功能分支合并到一个不是父分支的分支中。我不能在这个级别拥有 Main,因为一个报告可能需要数周的时间来开发,而另一个报告可能在一个时间表上,它已经开发并在几天内完成了整个流程并推向生产。我用于测试和 qa 的“建议更新”分支需要能够通过仅合并适当的开发分支来独立创建。
我对分支/合并的唯一经验是主+开发对分支,所以我在这里非常不适应。如何设置我的分支,以便能够在独立时间表上合并功能而不会卡住,并且代码在准备好之前就发布到环境中?
如果重要的话,我们现在正在参加 TFS 2008,并希望很快参加 TFS 2010。不过,这是我们当前 TFS 2008 服务器的迫切需要。
【问题讨论】: