diff --git a/src/GitVersionCore.Tests/IntegrationTests/DevelopScenarios.cs b/src/GitVersionCore.Tests/IntegrationTests/DevelopScenarios.cs index 72d9029b9e..ba371b5f8e 100644 --- a/src/GitVersionCore.Tests/IntegrationTests/DevelopScenarios.cs +++ b/src/GitVersionCore.Tests/IntegrationTests/DevelopScenarios.cs @@ -1,4 +1,4 @@ -using GitTools.Testing; +using GitTools.Testing; using GitVersion; using GitVersionCore.Tests; using LibGit2Sharp; @@ -183,4 +183,45 @@ public void InheritVersionFromReleaseBranch() fixture.AssertFullSemver("2.1.0-MyFeature.1+5"); } } -} \ No newline at end of file + + + + [Test] + public void CommitsSinceVersionSourceGoesDownWhenDeletingAReleaseBranch() + { + var config = new Config + { + VersioningMode = VersioningMode.ContinuousDeployment + }; + + using (var fixture = new EmptyRepositoryFixture()) + { + fixture.MakeACommit(); + fixture.ApplyTag("1.1.0"); + fixture.BranchTo("develop"); + fixture.MakeACommit("commit in develop"); + fixture.BranchTo("feature/featureA"); + fixture.MakeACommit("commit in featureA"); + fixture.MakeACommit("commit in featureA"); + fixture.Checkout("develop"); + fixture.MakeACommit("commit in develop"); + fixture.MakeACommit("commit in develop"); + fixture.BranchTo("release/1.2.0"); + fixture.MakeACommit("commit in release/1.2.0"); + fixture.Checkout("feature/featureA"); + fixture.MergeNoFF("develop"); + fixture.Checkout("develop"); + fixture.MergeNoFF("feature/featureA"); + fixture.Checkout("master"); + fixture.MergeNoFF("release/1.2.0"); + fixture.ApplyTag("1.2.0"); + fixture.Checkout("develop"); + fixture.MergeNoFF("release/1.2.0"); + fixture.SequenceDiagram.Destroy("release/1.2.0"); + fixture.Repository.Branches.Remove("release/1.2.0"); + + var expectedFullSemVer = "1.3.0-alpha.6"; + fixture.AssertFullSemver(config, expectedFullSemVer); + } + } +} diff --git a/src/GitVersionCore.Tests/IntegrationTests/FeatureBranchScenarios.cs b/src/GitVersionCore.Tests/IntegrationTests/FeatureBranchScenarios.cs index 7bd7506d1a..d8e0a94ab2 100644 --- a/src/GitVersionCore.Tests/IntegrationTests/FeatureBranchScenarios.cs +++ b/src/GitVersionCore.Tests/IntegrationTests/FeatureBranchScenarios.cs @@ -317,6 +317,34 @@ public void ShouldPickUpVersionFromDevelopAfterReleaseBranchMergedBack() } } + [Test] + public void MergingFromDevelopToFeatureShouldNotCauseMinorPatchToChange() + { + var config = new Config + { + VersioningMode = VersioningMode.ContinuousDeployment + }; + + using (var fixture = new EmptyRepositoryFixture()) + { + fixture.MakeACommit(); + fixture.ApplyTag("1.1.0"); + fixture.BranchTo("develop"); + fixture.MakeACommit("commit in develop"); + fixture.BranchTo("feature/featureA"); + fixture.MakeACommit("commit in featureA"); + fixture.MakeACommit("commit in featureA"); + fixture.Checkout("develop"); + fixture.MakeACommit("commit in develop"); + fixture.MakeACommit("commit in develop"); + fixture.Checkout("feature/featureA"); + fixture.MergeNoFF("develop"); + + var expectedFullSemVer = "1.2.0-featureA.5"; + fixture.AssertFullSemver(config, expectedFullSemVer); + } + } + public class WhenMasterMarkedAsIsDevelop { [Test]