2011-09-20 139 views
1

我目前已经有很多团队项目都由TFS高兴地管理。Team Foundation Server 2010 - 分支还是不分支?

我有一个项目,一个Windows应用程序,目前正在使用,并且在我将代码移植到TFS之前,我们手动使用脚本来复制/合并文件,以维护生产版本和新的开发版本。

例如App1 v1.x - 制作和 App1 v2.0开发中。

在TFS之前,我们手动“合并”到开发构建到生产构建的错误修复 - 所以在v2中适用的错误修复也在v2中修复。

在这种特殊情况下,v2是完全不同的,重新考虑ui等。我的问题是将此场景移植到TFS的最佳方式是什么。

当我看到它,我有两个选择:

  1. 创建一个新的团队项目,然后手动继续“合并”适用 代码文件。

  2. 从当前项目v1创建一个品牌,并在VS中逐个替换/覆盖项目,以便源代码管理可以将更改管理回主团队项目。 V2也有一些额外的类库 - 如果这有所作为。

回答

3

通常情况下,这是我们用来做分支和合并策略:

  • 项目启动。所有团队成员正在CURRENT分支中使用1.0版本。
  • 项目接近里程碑或发布。建立一个分支,用于稳定PROD 1.0分支中的生产代码。现在,一半的团队稳定了分支上的产品,一半的团队继续在CURRENT分支上进行新的(有风险的)工作。
  • PROD 1.0分支已准备就绪并已投入生产。该分公司保持完好无损,为交付的版本提供维护和支持。修复程序在PROD 1.0分支上进行并合并到CURRENT分支中。
  • 项目接近另一个里程碑或发布。创建一个新的分支,用于稳定PROD 2.0分支中的生产代码。如前所述使用相同的机制。

使用此分支发布策略,您始终有一个每个分支的分支和维护版本,可以在版本和主流CURRENT开发线之间轻松向前和向后传播修补程序。

在这方面,我们使用TFS团队项目对某个产品进行多次发布。这限制了创建和维护项目空间的开销。

+0

优秀的答案你们俩。我曾经怀疑这是要走的路。实际上,我目前在TFS源代码控制中正确组织了生产项目。我有更新的V2解决方案不受管理 - 但已经进行了需要合并回生产v1.z版本的更改。
因此,根据您的建议,您建议为App V1.z创建一个分支,然后直接从我的非托管V2解决方案应用重要的,有风险的更改。对于我们在V1.z中修复的更改可以合并回Main?这是要点吗? – sambomartin

+0

这正是使用它的方式。我有以下链接,你可以看看:http://msdn.microsoft.com/en-us/library/aa730834(v=vs.80).aspx。没关系它是VS2005,仍然适用。 – kroonwijk

+0

很好的链接谢谢。从我可以看到的链接中的分支每发布示例建议为每个新版本创建一个分支。反其道而行之后会有什么特别的好处/后果吗? (即生产部门和开发部门) – sambomartin

2

总之......要分支!

看来你的版本之间的代码非常类似,你应该很简单地分支你的新版本。

在一般情况下,更改为新的团队项目是有道理的,如果你有一个或多个以下:

  • 的要求和/或不同的工作项目类型一个全新的面包
  • 完全不同的技术换句话说,你已经从根本上改变了设计&合并比获得
  • 需要存储的文档在其他SharePoint站点
  • 不同的发展methodolo &其他标记的详细损失GY - 流程模板
  • 不同的人合作双方,可能球队想要从观看V1或V2
  • 计划完全不同的发布周期,以释放两个产品
  • 需要完全分开报告限制用户

阅读您的文章我不认为创建一个新的团队项目后需要去 - 当然我可能是错的。

如果您决定使用分支变体,您可以从令人印象深刻的Visual Studio TFS Branching Guide 2010中获益良多,其中介绍了如何塑造代码库的结构。

+0

+1链接到分支指南。对分支感兴趣的任何人阅读。 – AaronS

+0

感谢pantelif,非常有用+1。给第一个答案增加了更详细的评论。 – sambomartin

相关问题