Mar*_*scu 4 git branching-strategy gitversion
我正在尝试配置 GitVersion 以使用发布流分支策略。
基本上,我有一个主线 Master 分支、Release、Feature 和 Fix 分支。功能和修复分支是从主分支创建的,并通过拉取请求合并回主分支。在冲刺结束时,我从 Master 创建一个发布分支,该分支将持续到下一个冲刺结束,届时将创建一个新的发布分支。Release 分支不会合并回 master 分支。它们甚至可以在创建新的发布分支后被删除。如果需要修补程序,它将在从创建并合并回 master 的 Fix 分支上开发,然后精心挑选到当前的 Release 分支中。我只在主要版本中使用 git 标签。
回到 GitVersion,我想对其进行配置,以便在创建新的发布分支时次要版本号会增加,并且当发布分支上有新的提交(从修复分支中挑选)时补丁号会增加。
有人已经这样做并且可以帮助我吗?
我们使用的流程与此非常相似(实际上基于它)。我们在发布分支上进行修补程序,并且还在发布分支之前创建预发布分支(方便在 octopus-deploy 中拥有单独的通道)。
经过一番努力,我最终得到了自己的PowerShell 脚本。该脚本很简单并且运行速度非常快(接近 1 秒,不像 GitVersion,它可以在我们具有大量分支的大型存储库上运行 5-15 分钟)。现在,结果如下所示:

它主要设计用于与 TeamCity 一起使用,但我认为您可以轻松地将其更改为您需要的脚。您可以在脚本注释中看到计算算法的详细描述。在此图上也做了简单的解释:

注意:在未来/主题分支中,与 GitVersion 不同,脚本使用 teamcity 中始终增长的构建计数器,而不是提交计数器。当我发现我们的大学使用武力推动(一些“干净的历史”政治),并且我不能依赖提交历史时,我必须这样做。