在TFS中,我应该为生产版本标记或创建分支吗?

时间:2013-02-28 18:49:24

标签: tfs branch

在进行生产部署时,我应该使用标签标记代码还是为生产中的代码创建分支?

5 个答案:

答案 0 :(得分:16)

在TFS中,我会有一个Release分支,其标签标识正在发布的特定版本。

这意味着你有其他分支我可以建议以下

  • 三大分支:Main,Develop,&发布。
  • 当前火灾的一个Hotfix分支。
  • 0到N个主要功能分支,以遏制发展中断。

详细信息

  • 主要分支
    • 包含最新的稳定版本
    • 标记/标签每个版本
  • 发展分公司
    • 从主要分支
    • 大部分工作已经完成
    • 在发布前合并回主页
  • 发布分支
    • 分支来自以下之一:
      • 发展部门
      • 或主分支(这可能会更好,因为它是"稳定")
    • 此处已​​完成错误修复
    • 修复后的测试和发布,
      • 合并开发分支
      • OR合并到Main分支然后转发整合(FI - 从父级到子级的合并)到Develop
    • 标记/标签每个版本或错误修复
  • Hotfix Branch
    • 从Main分支
    • 合并回Main
    • 转发整合合并到开发
    • 用于允许Main保持"稳定"
  • 主要专题分支
    • 分支自Develop
    • 合并回到Develop
    • 用于可能破坏常规开发路径的主要功能

参考文献:

答案 1 :(得分:2)

理想情况下,两者。

您可能希望拥有标签,以便准确了解您为特定版本提供的内容。但是,您可能还想创建一个分支,以便您可以对已发布的内容执行小错误修复并创建新版本。

答案 2 :(得分:1)

在实践中,您可以通过以下两种方式之一来接近它:

  • 为每个生产版本制定一个连续的开发时间表:

示例:

 ------------------------->dev
     |      |      |
     |      |      |
     |      |      |
    v1.0   v2.0   v3.0
  • 让您的作品发布“级联”:

示例:

---->v1.0---->v2.0---->v3.0

最终,由您决定采用何种架构,只要它一致且对您有意义。

答案 3 :(得分:1)

您可以将两者结合使用。以下是我们在内部为所有项目执行此操作的方法。

我们为每个次要版本和主要版本都有文件夹Branches和sub文件夹的结构。我们还使用我们在单个子文件夹上设置的标签,以便我们可以在将来的任何时间轻松地重建任何特定版本。

$\Branches
    \2012.01
    \2012.02 (branched from 2012.01)
    \2012.03 (branched from 2012.02)
    \2013.01 (branched from 2012.03)

您还可以查看Visual Studio Team Foundation Server Branching and Merging Guide了解详情。

答案 4 :(得分:0)

我已经看过两件事,标签更轻巧,对我来说更容易。但是,有人指出标签可以很容易删除。除非“被破坏”,否则分支实际上不会被删除。我不喜欢使用分支机构的原因是我不喜欢隐藏它们,因为我倾向于从根目录获取最新信息并且不希望所有这些分支填满我的硬盘

对于记录,因为有人向我指出有关标签被删除的情况,我已经删除了所有人的标签权限,除了管理员和构建服务帐户以帮助缓解这一点。