Skip to content

Commit f008d19

Browse files
committed
Should not increment version when current commit is tagged
1 parent 70dbeb0 commit f008d19

File tree

4 files changed

+27
-5
lines changed

4 files changed

+27
-5
lines changed

GitVersionCore.Tests/VersionCalculation/Strategies/LastTagBaseVersionStrategyTests.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,30 @@
88
public class LastTagBaseVersionStrategyTests
99
{
1010
[Test]
11-
public void ShouldAllowVersionIncremenet()
11+
public void ShouldAllowVersionIncrement()
1212
{
1313
var context = new GitVersionContextBuilder()
1414
.WithTaggedMaster()
15+
.AddCommit()
1516
.Build();
1617
var sut = new LastTagBaseVersionStrategy();
1718

1819
var baseVersion = sut.GetVersion(context);
1920

2021
baseVersion.ShouldIncrement.ShouldBe(true);
2122
}
23+
24+
[Test]
25+
public void ShouldNotAllowVersionIncrementWhenTagComesFromCurrentCommit()
26+
{
27+
var context = new GitVersionContextBuilder()
28+
.WithTaggedMaster()
29+
.Build();
30+
var sut = new LastTagBaseVersionStrategy();
31+
32+
var baseVersion = sut.GetVersion(context);
33+
34+
baseVersion.ShouldIncrement.ShouldBe(false);
35+
}
2236
}
2337
}

GitVersionCore/VersionCalculation/BaseVersionCalculators/LastTagBaseVersionStrategy.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ public override BaseVersion GetVersion(GitVersionContext context)
66
{
77
VersionTaggedCommit version;
88
if (new LastTaggedReleaseFinder(context).GetVersion(out version))
9-
return new BaseVersion(true, version.SemVer, version.Commit);
9+
{
10+
var shouldIncrement = version.Commit != context.CurrentCommit;
11+
return new BaseVersion(shouldIncrement, version.SemVer, version.Commit);
12+
}
1013

1114
return null;
1215
}

GitVersionCore/VersionCalculation/MetaDataCalculator.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ public SemanticVersionBuildMetaData Create(Commit baseVersionSource, GitVersionC
1414
SortBy = CommitSortStrategies.Topological | CommitSortStrategies.Time
1515
};
1616

17+
var commitsSinceTag = context.Repository.Commits.QueryBy(qf).Count();
18+
1719
return new SemanticVersionBuildMetaData(
18-
context.Repository.Commits.QueryBy(qf).Count(),
20+
commitsSinceTag,
1921
context.CurrentBranch.Name,
2022
context.CurrentCommit.Sha,
2123
context.CurrentCommit.When());

GitVersionCore/VersionCalculation/NewNextVersionCalculator.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,11 @@ static void IncrementVersion(GitVersionContext context, BaseVersion baseVersion)
5757
}
5858
else
5959
{
60-
baseVersion.SemanticVersion.PreReleaseTag.Number = baseVersion.SemanticVersion.PreReleaseTag.Number ?? 0;
61-
baseVersion.SemanticVersion.PreReleaseTag.Number++;
60+
if (baseVersion.SemanticVersion.PreReleaseTag.Number != null)
61+
{
62+
baseVersion.SemanticVersion.PreReleaseTag.Number = baseVersion.SemanticVersion.PreReleaseTag.Number;
63+
baseVersion.SemanticVersion.PreReleaseTag.Number++;
64+
}
6265
}
6366
}
6467
}

0 commit comments

Comments
 (0)