在TFS中分支-像在git中那样分支整个代码库,还是只分支受影响的子项目?
我们正在将一个大型项目从VSS更新为TFS2010,我们需要建立良好的分支/合并策略。我们支持功能分支,但我不知道我们是应该只分支每个功能中受影响的子项目/文件(就像我们在VSS中所做的那样),还是应该始终分支整个代码库,并依靠延迟复制和良好的合并(就像在git/mercurial中) 到目前为止,我在网上找到的指南讨论了分支策略(按版本、功能等进行分支),但没有讨论应该在哪些文件/子项目上执行分支 有“正确的方法”吗?假设我们有这样的设置:在TFS中分支-像在git中那样分支整个代码库,还是只分支受影响的子项目?,tfs,branching-and-merging,Tfs,Branching And Merging,我们正在将一个大型项目从VSS更新为TFS2010,我们需要建立良好的分支/合并策略。我们支持功能分支,但我不知道我们是应该只分支每个功能中受影响的子项目/文件(就像我们在VSS中所做的那样),还是应该始终分支整个代码库,并依靠延迟复制和良好的合并(就像在git/mercurial中) 到目前为止,我在网上找到的指南讨论了分支策略(按版本、功能等进行分支),但没有讨论应该在哪些文件/子项目上执行分支 有“正确的方法”吗?假设我们有这样的设置: Code | |- ModuleA |- Modul
Code
|
|- ModuleA
|- ModuleB
|- ModuleC
|- ModuleD
我们有一个影响ModuleA和ModuleD的特性F。我们最好是分支代码,还是只模块化和模块化?我读了很多关于这个主题的文章(Techdays、视频等),在我的项目中应用这个策略,这是推荐的最佳实践 实施需要执行以下任务: 一,。创建截断的开发,主干读取XYZ 注意:发展不是直接在主干上,而是关于一个叫Service Pack branch的女孩 二,。从主干创建一个新的子分支服务包,语言1.YZ 注意:此分支将承载第一个专用开发功能 事件项目:第一次迭代的结束(开发团队认为开发已经完成) 三,。从Service Pack 1.YZ创建一个名为1.0.Z的新子分支修复程序 注意:这个分支包含了在目标特性交付之后,专门用于未来bug修复的所有开发 四,。从Fix 1.0.Z创建。命名为1.0.0的新子分支发行版 注:
- 此分支将保持只读
- 此分支是在生产环境中部署的唯一分支
- 这家分店是我们送货的照片
- 它允许您绘制不同的交付
- 如果需要,它允许在回滚版本上执行操作(避免文件版本冲突)
- 创建新的分支版本1.0.1
- 交付分支版本1.0.1
- 将修复程序1.0.Z合并到Service Pack 1.Y.Z
- 合并服务包1.Y.Z。到X.Y.Z.主干 注意:您可以多次迭代:1.0、1、1.0.2、1.0.3等
- 对固定分支1.1.Z进行更正
- 从fix1.1.Z创建。命名为1.1.0的新子分支发行版
- 交付1.1.0分支 事件项目:一个重要的新特性出现了
备注:在我的博客上,我写了一篇文章,如果你的特性影响了整个代码库中使用的某些东西,请将整个代码库分支。您仍然希望在功能分支上运行CI构建,因此您希望所有自动化测试都像往常一样运行 即使某个特性只影响应用程序的一小部分,您仍然希望能够对整个应用程序进行测试,以确保没有引入任何破坏性的更改
我建议您阅读,您可以从CodePlex下载。对分支整个代码库有任何惩罚吗。。。is像SVN/Git一样智能,只复制实际更改的文件?在我看来,如果这不是性能问题的话,这是非常可取的。是的,它的行为类似于SVN和Git。树枝又便宜又快。