11

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

4

5 回答 5

19

在 TFS 中,我会有一个带有标签的 Release 分支,用于标识要发布到生产环境的特定版本。

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

  • 三大分支:Main、Develop 和 Release。
  • 您当前火灾的一个修补程序分支。
  • 0 到 N 个主要功能分支,以遏制开发中断。

细节

  • 主枝
    • 包含最新的稳定版本
    • 标记/标记每​​个版本
  • 开发分支
    • 从主分支
    • 大部分工作完成的地方
    • 发布前合并回 Main
  • 发布分支
    • 从以下之一分支:
      • 开发分支
      • 或主分支(这可能会更好,因为它是“稳定的”)
    • 错误修复在这里完成
    • 修复测试并发布后,
      • 合并到开发分支
      • 或合并到主分支,然后转发集成(FI - 这是从父级到子级的合并)到开发
    • 标记/标记每​​个版本或错误修复
  • 修补程序分支
    • 从主要分支
    • 合并回 Main
    • 前向整合合并到发展
    • 用于让 Main 保持“稳定”
  • 主要功能分支
    • 从开发分支
    • 合并回开发
    • 用于可能会破坏常规开发路径的主要功能

参考:

于 2014-07-02T15:07:16.650 回答
3

理想情况下,两者兼而有之。

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

于 2013-02-28T19:04:21.507 回答
1

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

  • 有一个持续的开发时间表,为您的每个生产版本分支:

例子:

 ------------------------->dev
     |      |      |
     |      |      |
     |      |      |
    v1.0   v2.0   v3.0
  • 让您的生产版本彼此“级联”:

例子:

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

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

于 2013-02-28T19:01:00.273 回答
1

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

对于每个次要和主要版本,我们都有包含文件夹分支和子文件夹的结构。我们还使用我们在各个子文件夹上设置的标签,以便我们可以在未来任何时候轻松地重建任何特定版本。

$\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 分支和合并指南了解更多详细信息。

于 2013-03-04T11:39:24.723 回答
0

我已经看到两者都完成了,标签更轻量级,对我来说更容易。但是,有人指出,标签可以很容易地删除。除非“销毁”,否则分支实际上不会被删除,从而防止这种情况发生。我不喜欢使用分支的原因是我讨厌隐藏它们,因为我倾向于从根目录获取最新信息,并且不希望所有这些分支填满我的硬盘

作为记录,由于有人向我指出标签被删除,我已经从除管理员和构建服务帐户之外的所有人删除了标签权限,以帮助缓解这种情况。

于 2013-02-28T19:01:42.067 回答