问题描述
我们使用的是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: {}