diff --git a/src/GitVersionCore.Tests/IntegrationTests/ReleaseBranchScenarios.cs b/src/GitVersionCore.Tests/IntegrationTests/ReleaseBranchScenarios.cs index 5964d2bf87..2d32481d52 100644 --- a/src/GitVersionCore.Tests/IntegrationTests/ReleaseBranchScenarios.cs +++ b/src/GitVersionCore.Tests/IntegrationTests/ReleaseBranchScenarios.cs @@ -232,6 +232,34 @@ public void WhenReleaseBranchIsMergedIntoMasterHighestVersionIsTakenWithIt() fixture.AssertFullSemver("2.0.0+5"); } + [Test] + public void WhenReleaseBranchIsMergedIntoMasterHighestVersionIsTakenWithItEvenWithMoreThanTwoActiveBranches() + { + using var fixture = new EmptyRepositoryFixture(); + fixture.Repository.MakeATaggedCommit("1.0.3"); + fixture.Repository.MakeCommits(1); + + fixture.Repository.CreateBranch("release-3.0.0"); + fixture.Checkout("release-3.0.0"); + fixture.Repository.MakeCommits(4); + fixture.Checkout("master"); + fixture.Repository.MergeNoFF("release-3.0.0", Generate.SignatureNow()); + + fixture.Repository.CreateBranch("release-2.0.0"); + fixture.Checkout("release-2.0.0"); + fixture.Repository.MakeCommits(4); + fixture.Checkout("master"); + fixture.Repository.MergeNoFF("release-2.0.0", Generate.SignatureNow()); + + fixture.Repository.CreateBranch("release-1.0.0"); + fixture.Checkout("release-1.0.0"); + fixture.Repository.MakeCommits(4); + fixture.Checkout("master"); + fixture.Repository.MergeNoFF("release-1.0.0", Generate.SignatureNow()); + + fixture.AssertFullSemver("3.0.0+10"); + } + [Test] public void WhenMergingReleaseBackToDevShouldNotResetBetaVersion() { diff --git a/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/MergeMessageVersionStrategy.cs b/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/MergeMessageVersionStrategy.cs index 537f0fd4a2..84d11bacbb 100644 --- a/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/MergeMessageVersionStrategy.cs +++ b/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/MergeMessageVersionStrategy.cs @@ -42,7 +42,9 @@ public virtual IEnumerable GetVersions(GitVersionContext context) }; } return Enumerable.Empty(); - }).ToList(); + }) + .Take(5) + .ToList(); return baseVersions; } diff --git a/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs b/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs index f511b9ac83..074541b343 100644 --- a/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs +++ b/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs @@ -43,6 +43,7 @@ public IEnumerable GetTaggedVersions(GitVersionContext context, Bra return null; }) .Where(a => a != null) + .Take(5) .ToList(); return tagsOnBranch.Select(t => CreateBaseVersion(context, t));