Как работает команда GitVersion + semver? - PullRequest
1 голос
/ 10 января 2020

Я пытаюсь увеличить номер версии моего патча с помощью команды GitVersion +semver:patch, но она работает не так, как я ожидаю.

У меня есть тег '2.2.0' на моей ветке master . И я сделал следующие коммиты в моей ветке 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, и есть ли способ увеличить номер активной версии только сообщениями о фиксации, как я и собираюсь (ie. Без ручной пометки)?

1 Ответ

2 голосов
/ 10 января 2020

GitVersion работает

  1. Поиск последней «базовой версии», а затем
  2. Поиск наиболее значительного приращения (ie. Major, minor, patch).

В моем случае базовая версия была взята из самого последнего тега 2.2.0. Мои +semver:patch сообщения рассматриваются как часть (2), но по умолчанию ветвь разработки настроена для увеличения младшей версии:

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

GitVersion по умолчанию не «наращивает» стек - он просто берет самый значительный прирост и применяет его к базовой версии. Часть соответствующего кода из 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;
}

Поскольку ветвь разработки уже увеличивает базовую версию на одну вспомогательную версию (ie. До 2.3.0), мои инструкции по увеличению версии патча игнорируются.

...