From 83931af7baf9e7263becb02b7963d15e043e84cc Mon Sep 17 00:00:00 2001 From: "Erik A. Brandstadmoen" Date: Sun, 1 Mar 2020 13:10:57 +0100 Subject: [PATCH 1/2] Issue #2148: Limit number of commits traversed Limit the number of commits traversed when trying to find version from tags and merge messages to 2 (each). Solves #2148 --- .../BaseVersionCalculators/MergeMessageVersionStrategy.cs | 4 +++- .../BaseVersionCalculators/TaggedCommitVersionStrategy.cs | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/MergeMessageVersionStrategy.cs b/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/MergeMessageVersionStrategy.cs index 537f0fd4a2..336d8246fa 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(2) + .ToList(); return baseVersions; } diff --git a/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs b/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs index f511b9ac83..eff79e49bd 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(2) .ToList(); return tagsOnBranch.Select(t => CreateBaseVersion(context, t)); From d7f3d8cf8444b5ceea4aed0a442ac591a6bff6db Mon Sep 17 00:00:00 2001 From: "Erik A. Brandstadmoen" Date: Fri, 6 Mar 2020 17:18:20 +0100 Subject: [PATCH 2/2] Issue #2148: Added tests and increased # of commits to 5 --- .../ReleaseBranchScenarios.cs | 28 +++++++++++++++++++ .../MergeMessageVersionStrategy.cs | 2 +- .../TaggedCommitVersionStrategy.cs | 2 +- 3 files changed, 30 insertions(+), 2 deletions(-) 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 336d8246fa..84d11bacbb 100644 --- a/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/MergeMessageVersionStrategy.cs +++ b/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/MergeMessageVersionStrategy.cs @@ -43,7 +43,7 @@ public virtual IEnumerable GetVersions(GitVersionContext context) } return Enumerable.Empty(); }) - .Take(2) + .Take(5) .ToList(); return baseVersions; } diff --git a/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs b/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs index eff79e49bd..074541b343 100644 --- a/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs +++ b/src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs @@ -43,7 +43,7 @@ public IEnumerable GetTaggedVersions(GitVersionContext context, Bra return null; }) .Where(a => a != null) - .Take(2) + .Take(5) .ToList(); return tagsOnBranch.Select(t => CreateBaseVersion(context, t));