Skip to content

Commit 16a8e0c

Browse files
Fix to prevent mainline tag promotion to become a pre-release numeric tag
1 parent dae69c6 commit 16a8e0c

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

src/GitVersionCore.Tests/IntegrationTests/OtherScenarios.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public void AllowHavingMainInsteadOfMaster()
7878
Commands.Checkout(fixture.Repository, fixture.Repository.CreateBranch("main"));
7979
fixture.Repository.Branches.Remove(fixture.Repository.Branches["master"]);
8080

81-
fixture.AssertFullSemver("0.1.0+0", config);
81+
fixture.AssertFullSemver("0.1.0-1+0", config);
8282
}
8383

8484
[Test]

src/GitVersionCore/VersionCalculation/SemanticVersioning/SemanticVersionPreReleaseTag.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@ public SemanticVersionPreReleaseTag(SemanticVersionPreReleaseTag preReleaseTag)
2525
{
2626
Name = preReleaseTag.Name;
2727
Number = preReleaseTag.Number;
28+
PromotedFromCommits = preReleaseTag.PromotedFromCommits;
2829
}
2930

3031
public string Name { get; set; }
3132
public int? Number { get; set; }
33+
public bool PromotedFromCommits { get; set; }
3234

3335
public override bool Equals(object obj)
3436
{
@@ -188,13 +190,17 @@ private string FormatLegacy(string tag, string number = "")
188190

189191
private string GetLegacyName()
190192
{
193+
if (string.IsNullOrEmpty(Name))
194+
{
195+
return string.Empty;
196+
}
191197
var firstPart = Name.Split('_')[0];
192198
return firstPart.Replace(".", string.Empty);
193199
}
194200

195201
public bool HasTag()
196202
{
197-
return !string.IsNullOrEmpty(Name) || Number.HasValue;
203+
return !string.IsNullOrEmpty(Name) || (Number.HasValue && !PromotedFromCommits);
198204
}
199205
}
200206
}

src/GitVersionCore/VersionCalculation/VariableProvider.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ private static void PromoteNumberOfCommitsToTagNumber(SemanticVersion semanticVe
116116
else
117117
{
118118
semanticVersion.PreReleaseTag.Number = semanticVersion.BuildMetaData.CommitsSinceTag;
119+
semanticVersion.PreReleaseTag.PromotedFromCommits = true;
119120
}
120121
semanticVersion.BuildMetaData.CommitsSinceVersionSource = semanticVersion.BuildMetaData.CommitsSinceTag.Value;
121122
semanticVersion.BuildMetaData.CommitsSinceTag = null; // why is this set to null ?

0 commit comments

Comments
 (0)