Closed
Description
Describe the bug
Using the default configuration of GitVersionTask v5.3.7 the VersionSource ends up being not the latest tagged commit on master but rather the one before that.
Image of the test repository branch history: (blue: develop, red: master, green: release branches)
Output of gitversion /diag
:
INFO [08/26/20 16:21:25:50] Dumping commit graph:
INFO [08/26/20 16:21:25:62] * 4c6828d 2 hours ago (HEAD -> develop, origin/develop)
|\
| * 27f83ef 2 hours ago (tag: 0.4.0, origin/master, master)
| |\
| | * 925521e 2 hours ago
| |/
|/|
* | ac89157 2 hours ago
* | b6e93d6 2 hours ago
|\|
| * b6df2d3 2 hours ago (tag: 0.3.0)
| |\
| | * 27277e7 3 hours ago
| |/
|/|
* | ae5d80a 3 hours ago
* | 73ffb7d 3 hours ago
|\|
| * a3fe19c 3 hours ago (tag: 0.2.0)
| |\
| | * 9a40911 3 hours ago
| |/
|/|
* | c074d61 4 hours ago
* | 00cdcbe 5 hours ago
|/
* 18dbaa2 5 hours ago (tag: 0.1.0)
INFO [08/26/20 16:21:25:62] Working directory: D:\Workspace\GitVersionTest
INFO [08/26/20 16:21:25:67] Project root is: D:\Workspace\GitVersionTest\
INFO [08/26/20 16:21:25:67] DotGit directory is: D:\Workspace\GitVersionTest\.git
INFO [08/26/20 16:21:25:76] Using latest commit on specified branch
INFO [08/26/20 16:21:25:79] Running against branch: develop (4c6828daf637c00e93f7e1d7b47e029a0d867bd2)
INFO [08/26/20 16:21:25:79] Begin: Calculating base versions
INFO [08/26/20 16:21:25:87] Found commit [4c6828daf637c00e93f7e1d7b47e029a0d867bd2] matching merge message format: Default
INFO [08/26/20 16:21:25:87] Found commit [4c6828daf637c00e93f7e1d7b47e029a0d867bd2] matching merge message format: Default
INFO [08/26/20 16:21:25:87] Found commit [4c6828daf637c00e93f7e1d7b47e029a0d867bd2] matching merge message format: Default
INFO [08/26/20 16:21:25:87] Merge message 'Merge branch 'release/0.4.0'': 0.4.0 with commit count source 27f83ef810557a4f92a310c5ecd3d37e946a9c50
INFO [08/26/20 16:21:25:88] Merge message 'Merge branch 'release/0.3.0'': 0.3.0 with commit count source b6df2d3925f42079b32ba28321368f4905159926
INFO [08/26/20 16:21:25:88] Merge message 'Merge branch 'release/0.2.0'': 0.2.0 with commit count source a3fe19c9fcbc8e3b32238c31e321e8b2bc800b57
INFO [08/26/20 16:21:25:89] Git tag '0.4.0': 0.4.0 with commit count source 27f83ef810557a4f92a310c5ecd3d37e946a9c50
INFO [08/26/20 16:21:25:89] Git tag '0.3.0': 0.3.0 with commit count source b6df2d3925f42079b32ba28321368f4905159926
INFO [08/26/20 16:21:25:89] Git tag '0.2.0': 0.2.0 with commit count source a3fe19c9fcbc8e3b32238c31e321e8b2bc800b57
INFO [08/26/20 16:21:25:89] Git tag '0.1.0': 0.1.0 with commit count source 18dbaa2bda565ca554463be8f7797343501cb0d3
INFO [08/26/20 16:21:25:90] Git tag '0.4.0': 0.4.0 with commit count source 27f83ef810557a4f92a310c5ecd3d37e946a9c50
INFO [08/26/20 16:21:25:91] Git tag '0.3.0': 0.3.0 with commit count source b6df2d3925f42079b32ba28321368f4905159926
INFO [08/26/20 16:21:25:91] Git tag '0.2.0': 0.2.0 with commit count source a3fe19c9fcbc8e3b32238c31e321e8b2bc800b57
INFO [08/26/20 16:21:25:91] Git tag '0.1.0': 0.1.0 with commit count source 18dbaa2bda565ca554463be8f7797343501cb0d3
INFO [08/26/20 16:21:25:92] Found multiple base versions which will produce the same SemVer (0.5.0), taking oldest source for commit counting (Merge message 'Merge branch 'release/0.4.0'')
INFO [08/26/20 16:21:25:92] Base version used: Merge message 'Merge branch 'release/0.4.0'': 0.4.0 with commit count source b6df2d3925f42079b32ba28321368f4905159926
INFO [08/26/20 16:21:25:92] End: Calculating base versions (Took: 126.65ms)
INFO [08/26/20 16:21:25:92] 5 commits found between b6df2d3925f42079b32ba28321368f4905159926 and 4c6828daf637c00e93f7e1d7b47e029a0d867bd2
INFO [08/26/20 16:21:25:93] Begin: Getting version tags from branch 'refs/heads/develop'.
INFO [08/26/20 16:21:25:94] End: Getting version tags from branch 'refs/heads/develop'. (Took: 9.33ms)
{
"Major":0,
"Minor":5,
"Patch":0,
"PreReleaseTag":"alpha.5",
"PreReleaseTagWithDash":"-alpha.5",
"PreReleaseLabel":"alpha",
"PreReleaseNumber":5,
"WeightedPreReleaseNumber":5,
"BuildMetaData":"",
"BuildMetaDataPadded":"",
"FullBuildMetaData":"Branch.develop.Sha.4c6828daf637c00e93f7e1d7b47e029a0d867bd2",
"MajorMinorPatch":"0.5.0",
"SemVer":"0.5.0-alpha.5",
"LegacySemVer":"0.5.0-alpha5",
"LegacySemVerPadded":"0.5.0-alpha0005",
"AssemblySemVer":"0.5.0.0",
"AssemblySemFileVer":"0.5.0.0",
"FullSemVer":"0.5.0-alpha.5",
"InformationalVersion":"0.5.0-alpha.5+Branch.develop.Sha.4c6828daf637c00e93f7e1d7b47e029a0d867bd2",
"BranchName":"develop",
"EscapedBranchName":"develop",
"Sha":"4c6828daf637c00e93f7e1d7b47e029a0d867bd2",
"ShortSha":"4c6828d",
"NuGetVersionV2":"0.5.0-alpha0005",
"NuGetVersion":"0.5.0-alpha0005",
"NuGetPreReleaseTagV2":"alpha0005",
"NuGetPreReleaseTag":"alpha0005",
"VersionSourceSha":"b6df2d3925f42079b32ba28321368f4905159926",
"CommitsSinceVersionSource":5,
"CommitsSinceVersionSourcePadded":"0005",
"CommitDate":"2020-08-26"
}
INFO [08/26/20 16:21:25:97] Done writing
Expected Behavior
I would expect the VersionSource to be the 0.4.0 tag
Actual Behavior
VersionSource is determined to be the 0.3.0 tag
I tried my hand on this fixture thing but i have no idea if i did it right:
[Test]
public void VersionSource()
{
// Arrange
var config = new ConfigurationBuilder().Build();
// Act
using var fixture = new BaseGitFlowRepositoryFixture("0.1.0");
fixture.Checkout("master");
var initialCommit = fixture.Repository.Head.Tip;
fixture.MergeNoFF("develop");
fixture.Checkout("develop");
fixture.MakeACommit("Feature commit 1");
fixture.BranchTo("release/0.2.0");
fixture.MakeACommit("Release commit 1");
fixture.Checkout("master");
fixture.MergeNoFF("release/0.2.0");
fixture.ApplyTag("0.2.0");
var tag = fixture.Repository.Head.Tip;
fixture.Checkout("develop");
fixture.MergeNoFF("master");
var version = fixture.GetVersion(config);
version.VersionSourceSha.ShouldBe(tag.Sha);
}
- Version Used:
- Operating System and version (Windows 10, Ubuntu 18.04): Windows 10 Version 10.0.17763 Build 17763