[ISSUE]: Prevent auto increment per commit for master
prostakov opened this issue · 2 comments
Prerequisites
- I have written a descriptive issue title
- I have searched issues to ensure it has not already been reported
GitVersion package
GitVersion.Tool
GitVersion version
6.0.2
Operating system
macOS
What are you seeing?
I currently have following config:
assembly-versioning-scheme: MajorMinorPatch
assembly-file-versioning-scheme: MajorMinorPatchTag
assembly-informational-format: '{InformationalVersion}'
mode: ContinuousDelivery
increment: Inherit
commit-date-format: 'yyyy-MM-dd'
merge-message-formats: {}
branches:
master:
regex: ^master$
mode: ContinuousDelivery
label: ''
increment: None
track-merge-target: false
tracks-release-branches: false
is-release-branch: false
prevent-increment:
of-merged-branch: false
when-current-commit-tagged: false
And I currently have following situation in master branch:
- Commit 1 = 1.0.0 (tagged 1.0.0)
- Commit 2 = 1.0.1-1
- Commit 3 = 1.0.1-2
- Commit 4 = 1.0.1-3
The patch value gets automatically incremented once, on first commit after tagged commit.
And since I set configuration on master: increment: None
, this was not expected.
What is expected?
The expected behavior would be like this:
- Commit 1 = 1.0.0 (tagged 1.0.0)
- Commit 2 = 1.0.0-1
- Commit 3 = 1.0.0-2
- Commit 4 = 1.0.0-3
This way the major-minor-patch gets fully controlled by release tag.
Steps to Reproduce
Tags commit with version, create extra 3 commits.
RepositoryFixture Test
No response
Output log or link to your CI build (if appropriate).
No response
Please keep in mind that you are inheriting from the default workflow which is in your example the GitFlow/v1
workflow. Because you choice master instead of main, you are not overriding but defining a second definition for the master branch:
branches:
main:
regex: ^master$|^main$
...
master:
regex: ^master$
...
...
Saying: First comes first servers.
To the workflow
property you will find the following documentation:
workflow
The base template of the configuration to use. Possible values are GitFlow/v1 or GitHubFlow/v1. Defaults to GitFlow/v1 if not set. To create a configuration from scratch without using a base template, please specify an empty string.
What you want is probably to define your configuration from scratch:
workflow: ''
assembly-versioning-scheme: MajorMinorPatch
assembly-file-versioning-scheme: MajorMinorPatch
tag-prefix: '[vV]?'
version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).*
...
Happy Branching!
Thank you very much.
It works. Had to add the strategies: [TaggedCommit]
though.
The final working configuration snippet looks like following:
workflow: ''
assembly-versioning-scheme: MajorMinorPatch
assembly-file-versioning-scheme: MajorMinorPatchTag
assembly-informational-format: '{InformationalVersion}'
mode: ContinuousDelivery
increment: None
tag-prefix: '[v]'
commit-message-incrementing: Disabled
commit-date-format: 'yyyy-MM-dd'
tag-pre-release-weight: 60000
strategies: [TaggedCommit]
branches:
master:
regex: ^master$
label: ''
increment: None
track-merge-target: false
tracks-release-branches: false
is-release-branch: false
release:
regex: ^release?[/-]
label: beta
increment: None
track-merge-target: true
tracks-release-branches: true
is-release-branch: true