GitVersion 的 +semver 命令如何工作?

How does GitVersion's +semver command work?

我正在尝试使用 GitVersion's +semver:patch 命令增加我的补丁版本号,但它没有按我预期的方式工作。

我的 master 分支上有一个标签“2.2.0”。我在 develop 分支上做了以下承诺:

b5d9f141  (HEAD -> develop, origin/develop) +semver:patch
75122489  Added unit test. +semver:patch
3b4e7eef  (tag: 2.2.0, origin/master, master) Merge branch 'release/2.2.0'

我正在关注 GitFlow。在最近两次提交之后,我希望我的版本报告为 2.3.2,但 GitVersion 仍将其报告为 2.3.0。

"MajorMinorPatch":"2.3.0"

+semver 是如何工作的,有没有什么方法可以按照我想要的方式(即没有手动标记)仅使用提交消息来增加活动版本号?

Git 版本由

  1. 查找最新的"base version,"然后
  2. 找到最重要的增量(即主要、次要、补丁)。

就我而言,基本版本取自最新的标签 2.2.0。我的 +semver:patch 消息被视为 (2) 的一部分,但默认情况下开发分支配置为增加次要版本:

branches:
  develop:
    mode: ContinuousDeployment
    tag: alpha
    increment: Minor

GitVersion 默认情况下不会 "stack" 递增 — 它只是采用最重要的递增并将其应用于基本版本。 IncrementStrategyFinder 中的一些相关代码是:

// cap the commit message severity to minor for alpha versions
if (baseVersion.SemanticVersion < new SemanticVersion(1) && commitMessageIncrement > VersionField.Minor)
{
    commitMessageIncrement = VersionField.Minor;
}

// don't increment for less than the branch config increment, if the absence of commit messages would have
// still resulted in an increment of configuration.Increment
if (baseVersion.ShouldIncrement && commitMessageIncrement < defaultIncrement)
{
    return defaultIncrement;
}

由于开发分支已经将基础版本增加了一个次要版本(即增加到 2.3.0),我的补丁版本增加指令将被忽略。