首页 文章

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

提问于
浏览
1

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

我正在努力将分支/合并介绍给目前使用源代码控制而没有任何分支的新团队 .

我想知道如何实际使用RELEASE分支 .

可以在DEV分支中进行更改然后合并到MAIN分支而无需RELEASE分支吗? MAIN仍然是只读的 . 它本质上基本上是RELEASE分支 . 我说这个的原因是因为我们没有那么多变化,但我想将稳定代码与新变化隔离开来 . 我们的概念"release"每个人的说法尚未明确定义 . 我还在努力 .

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

我很感激有关只有 MAINDEV 分支的策略的一些评论 .

2 回答

  • 2

    通常,释放分支用于“保管” . 基本上与标签相同 .

    发布到 生产环境 通常是非常重要的事件,并且您想要确切地知道您发布的源(如果您需要返回它) . 当人们习惯于创建标签来跟踪这一点时,回过头来创建Release分支更好,原因如下:

    • 标签在TFS中是可变的,这意味着有人可以更改标签,并且不会有审计跟踪

    • 分支当然也是可变的(可以检入更改),但这可以通过分支特定权限锁定

    • 此外,如果对Release分支进行了更改(它永远不应该),那么至少您有一个历史记录的审计跟踪

    • 尽管分支看起来像是一个重量级的操作,创建了整个代码库的副本,但实际上TFS只是创建了一个指向相同文件的新指针,因此存储成本微不足道

  • 2

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

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

相关问题