gitversion mainline не правильно основывает версию от mainline? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть ветвь, давайте назовем ее features / feature_1

Он имеет 5 коммитов, так как он был разветвлен от master. Его стратегия «приращения» установлена ​​в «Нет». Если я извлекаю мастер, это версия 3.18.1

Если я извлекаю функции / feature_1, он имеет версию 3.5.1.

Я предполагаю, что это потому, что с тех пор произошло 5 коммитов. был разветвлен от мастера, но это не имеет смысла. Стратегия приращения - «нет», поэтому она должна быть 3.18.1, такой же, как и ее источник.

Что здесь происходит?

РЕДАКТИРОВАТЬ: я пробовал другой эксперимент. Если я извлекаю -b из master, я просто получаю версию 3.5.1. Без каких-либо новых коммитов. Это когда master получил версию 3.18.1. Я не могу смириться с тем, как это возможно.

assembly-versioning-scheme: MajorMinor
assembly-file-versioning-scheme: MajorMinor
mode: mainline
tag-prefix: '[vV]'
continuous-delivery-fallback-tag: ci
major-version-bump-message: '\+semver:\s?(breaking|major)'
minor-version-bump-message: '\+semver:\s?(feature|minor)'
no-bump-message: '\+semver:\s?(none|skip)'
legacy-semver-padding: 4
build-metadata-padding: 4
commits-since-version-source-padding: 4
commit-message-incrementing: Enabled
branches:
  master:
    tag: ''
    increment: Minor
    prevent-increment-of-merged-branch-version: true
    track-merge-target: false
    regex: ^master$
    source-branches:
    - develop
    - release
    tracks-release-branches: false
    is-release-branch: true
    is-mainline: true
    pre-release-weight: 55000
  feature:
    tag: useBranchName
    increment: None
    prevent-increment-of-merged-branch-version: false
    track-merge-target: false
    regex: ^features?[/-]
    source-branches:
    - master
    - feature
    tracks-release-branches: false
    is-release-branch: false
    is-mainline: false
    pre-release-weight: 30000
  hotfix:
    tag: beta
    increment: None
    prevent-increment-of-merged-branch-version: false
    track-merge-target: false
    regex: ^hotfix(es)?[/-]
    source-branches:
    - master
    - feature
    tracks-release-branches: false
    is-release-branch: false
    is-mainline: false
    pre-release-weight: 30000
ignore:
  sha: []
commit-date-format: yyyy-MM-dd
merge-message-formats: {}

1 Ответ

1 голос
/ 10 марта 2020

Я вижу, что вы установили is-release-branch: true и is-mainline: true в конфигурации вашей основной ветки. В документации сказано, что is-release-branch должно быть установлено для веток, которые являются ветвями релиза в соответствии с GitFlow , то есть release/1.0.0. В GitFlow master не является веткой выпуска.

Я также вижу, что у вас настроено source-branches для вашей ветви master. Согласно документации для source:

[Вы можете] дать подсказку GitVersion о [y] наших рабочих процессах ветвления, сообщив ему, какие типы ветвей могут быть ветвью создан из. Например, ветви функций по умолчанию настроены на следующие исходные ветви:

source-branches: ['master', 'develop', 'feature', 'hotfix', 'support']

Итак, в вашей конфигурации вы говорите, что master может быть создан из ветвей develop или release. Я думаю, что вы намеревались использовать is-source-branch-for.

В соответствии с документацией для increment, может быть, вам следует вместо этого использовать increment: Inherit для конфигурации ветви функции?

Часть SemVer, которая увеличивается, когда GitVersion обнаруживает, что она должна быть увеличена, например, для коммитов после тега: Major, Minor, Patch, None.

Специальное значение Inherit означает, что GitVersion должен найти родительскую ветвь (т. Е. Ветвь, от которой была разветвлена ​​текущая ветвь) и использовать ее значения для increment, prevent-increment-of-merged-branch-version и tracks-release-branches.

Теперь может случиться так, что вам нужно другое поведение для prevent-increment-of-merged-branch-version и tracks-release-branches, и в этом случае вы можете переопределить эти значения в разделе конфигурации ветви feature.

По общему признанию, документация для GitVersion не очень хорош или организован очень хорошо. Я обнаружил, что мне просто нужно немного поиграть с моей конфигурацией и попробовать что-то, чтобы действительно понять, как она работает. Я надеюсь, что, по крайней мере, я помог вам двигаться в правильном направлении.

...