Skip to content

[Bug] GitVersionTask: VersionSource is set to wrong tag #2394

Closed
@fdiewald

Description

@fdiewald

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)
image

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions