1

Microsoft ALM 团队将基本分支计划描述为需要MAINDEVRELEASE分支。

我正在努力将分支/合并引入一个新团队,该团队目前使用没有任何分支的源代码控制。

我想知道 RELEASE 分支是如何实际使用的。

是否可以在 DEV 分支中进行更改然后合并到 MAIN 分支而不需要 RELEASE 分支?MAIN 仍然是只读的。它本质上基本上是 RELEASE 分支。我之所以这么说是因为我们没有太多的变化,但我想将稳定的代码与新的变化隔离开来。我们每个人所说的“发布”的概念还没有很好的定义。我仍在努力。

我只是不知道我的团队是否需要一个 RELEASE 分支(具体考虑我们的需求)。

我将不胜感激有关仅拥有MAINDEV分支的策略的评论。

4

2 回答 2

2

当我在客户端实现 TFS(替换 SVN)时,我采取了另一种方式。我所做的是引入一个 MAIN 分支和一个 RELEASE 分支,而不是最初的 DEV 分支,因为这对团队来说似乎很混乱。最初也很难将 DEV 分支的目的传达给熟悉 SVN 的团队。

如另一个答案所述,我们的 RELEASE 分支的主要目的是保留历史占位符。目前我们正在使用 Git,我们有一个 CI 服务器来执行发布过程并分支到 release/$version_number。我认为这个概念可能更容易理解并传达给你的团队。即在您实际发布时自动创建发布分支。

于 2014-08-13T20:26:36.593 回答
2

通常,发布分支用于“保管”。基本上和标签一样。

发布到生产环境通常是一个非常重要的事件,你想知道你发布的确切来源(以防你需要回到它)。早在人们过去常常创建标签来跟踪这一点时,创建发布分支更好,原因有以下几点:

  • 标签在 TFS 中是可变的,这意味着有人可以更改标签并且不会有审计跟踪
  • 分支当然也是可变的(可以签入更改),但这可以通过分支特定权限锁定
  • 此外,如果对 Release 分支进行了更改(它永远不应该),至少您可以通过历史记录进行审计跟踪
  • 尽管分支看起来像是创建整个代码库副本的重量级操作,但实际上 TFS 只是创建指向相同文件的新指针,因此存储成本微不足道
于 2014-08-13T19:16:16.347 回答