4

我已经在 VSTS 中使用 GitFlow 存储库配置了我的 git 存储库。

我有一个带有 dotnet 核心项目的主分支,以及一个名为“Release/1.0.0”的发布分支。当我创建拉取请求并将 release/1.0.0 分支合并回 master 时,它不会将其版本号增加到 1.0.0。相反,它将版本号从 0.1.0(基本后备)增加到 0.1.1。

构建日志:

Calculating base versions
Fallback base version: 0.1.0 with commit count source xx
Git tag '0.1.0': 0.1.0 with commit count source xx
Base version used: Git tag '0.1.0': 0.1.0 with commit count source xx

但是,提交标签是 Merge branch Release/1.0.0 to master。并且被合并的分支被标记为 1.0.0。

我正在使用 GitVersion 默认设置。我正在使用 GitVersion VSTS 任务。

这是 gitversion 配置:

assembly-versioning-scheme: MajorMinorPatch
mode: ContinuousDelivery
branches: {}
ignore:
  sha: []

我应该怎么做才能自动将主分支的版本设置为正在合并的版本号?

更新:我发现出了什么“错误”。

发布被合并为拉取请求。这会将提交消息设置为 Merge PR #### 。但是,gitversion 的 MergeMes​​sageBaseVersionStrategy 无法处理这个问题。如果我将版本合并为常规合并,则版本号会增加。

4

1 回答 1

0

您应该在 CI 构建中为分支(或 PR 完成后的队列构建)添加 GitVersion 任务,master而不是 PR 构建验证。

由于 PR 构建验证是在分支真正合并到之前 触发的,所以 Gitversion 会从分支中检测版本(例如文件中的版本)。release/1.0.0mastermasterAssemblyInfo.cs

如果在 CI 构建中添加 GitVersion 任务(在分支release/1.0.0合并到master分支之后),那么 Gitversion 会从release/1.0.0分支中检测到版本 major.minor.patch=1.0.0。

于 2017-11-03T07:16:17.710 回答