ALM基本分支计划-发布分支的目的



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

我正在向一个新团队介绍分支/合并,这个团队目前使用的是没有分支的源代码控制。

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

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

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

我希望能得到一些关于仅拥有MAINDEV分支的策略的评论。

通常发布分支用于"安全保存"。与标签基本相同。

发布到生产环境通常是一个非常重要的事件,您想要确切地知道您发布了什么源(以防您需要返回它)。当人们习惯于创建标签来跟踪这一点时,但是创建发布分支更好,原因如下:

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

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

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

最新更新