GitVersion是否支持Mainline模式但具有开发分支?

问题描述

我们使用的是Mainline模式,因此我们不必将每次合并都标记为master。但是我们使用了“开发”分支(来自“ master”)和“功能”分支(来自“ develop”)。

但是,我们的“功能”分支似乎是基于“主”分支而不是“开发”分支来计算版本的。是否有一个简单的修补程序可以使'feature'分支的版本基于'develop'分支的版本,以便它们的版本与他们致力于下一个Minor版本的工作有关?

我们自动将从“开发”构建的预发行版部署到我们的dev&qa环境中。 我们会自动将从“主版本”构建的稳定版本部署到我们的暂存环境(然后手动触发它们以部署到生产环境)。

GitVersion是否支持以下情况:

  • 将开发人员合并到主版本中会生成一个稳定的发行版,而无需标记 0.1.0
  • 功能分支合并到开发中会生成我们正在努力的下一个次要版本( 0.2.0 -alpha0002)
  • 的预发布版本。
  • 功能分支是开发的分支,具有我们正在努力的下一个次要版本( 0.2.0 -jira-123-0004)

我们想要这样:

  • 主( 0.1.0
    • 开发( 0.2.0 -alpha0002)
      • 功能 0.2.0 -jira-1234-0004)

但是却得到了这个:

  • 主( 0.1.0
    • 开发( 0.2.0 -alpha0002)
      • 功能 0.1.1 -jira-1234-0004)
mode: MainLine
branches: {}
ignore:
  sha: []

我已经为此努力了一个星期。我已经阅读了文档,甚至下载了源代码

我尝试了mode,is-mainline,source-branches等的几种组合,但是总是遇到版本冲突。

mode: MainLine
branches:
  develop:
    is-mainline: true
    is-source-branch-for: ['feature']
  feature:
    increment: Minor
    source-branches: ['develop']
ignore:
  sha: []

似乎让GitVersion预测开发和功能分支的下一个稳定版本的唯一方法是使用ContinuousDeployment模式并在master上标记提交。

解决方法

这解决了我的问题:

mode: Mainline
branches:
  feature:
    regex: ^feature?[/-]
    increment: Minor
  hotfix:
    tag: 'hotfix-{BranchName}'
ignore:
  sha: []
merge-message-formats: {}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...