Skip to content

Commit 1416f9e

Browse files
author
Oren Novotny
committed
Support pluralized hotfix and release (hotfixes, releases)
1 parent 7e30e82 commit 1416f9e

File tree

5 files changed

+49
-6
lines changed

5 files changed

+49
-6
lines changed

src/GitVersionCore.Tests/ConfigProviderTests.CanWriteOutEffectiveConfiguration.approved.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ branches:
1313
increment: Patch
1414
prevent-increment-of-merged-branch-version: true
1515
track-merge-target: false
16-
release[/-]:
16+
releases?[/-]:
1717
mode: ContinuousDelivery
1818
tag: beta
1919
increment: Patch
@@ -32,7 +32,7 @@ branches:
3232
prevent-increment-of-merged-branch-version: false
3333
tag-number-pattern: '[/-](?<number>\d+)[-/]'
3434
track-merge-target: false
35-
hotfix[/-]:
35+
hotfix(es)?[/-]:
3636
mode: ContinuousDelivery
3737
tag: beta
3838
increment: Patch

src/GitVersionCore.Tests/ConfigProviderTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public void CanReadDefaultDocument()
118118
var config = ConfigurationProvider.Provide(repoPath, fileSystem);
119119
config.AssemblyVersioningScheme.ShouldBe(AssemblyVersioningScheme.MajorMinorPatch);
120120
config.Branches["dev(elop)?(ment)?$"].Tag.ShouldBe("unstable");
121-
config.Branches["release[/-]"].Tag.ShouldBe("beta");
121+
config.Branches["releases?[/-]"].Tag.ShouldBe("beta");
122122
config.TagPrefix.ShouldBe(ConfigurationProvider.DefaultTagPrefix);
123123
config.NextVersion.ShouldBe(null);
124124
}

src/GitVersionCore.Tests/IntegrationTests/HotfixBranchScenarios.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,33 @@ public void PatchLatestReleaseExample()
4242
}
4343
}
4444

45+
[Test]
46+
public void CanTakeVersionFromHotfixesBranch()
47+
{
48+
using (var fixture = new BaseGitFlowRepositoryFixture(r =>
49+
{
50+
r.MakeATaggedCommit("1.0.0");
51+
r.MakeATaggedCommit("1.1.0");
52+
r.MakeATaggedCommit("2.0.0");
53+
}))
54+
{
55+
56+
// Merge hotfix branch to support
57+
fixture.Repository.Checkout("master");
58+
fixture.Repository.Checkout(fixture.Repository.CreateBranch("support-1.1", (Commit)fixture.Repository.Tags.Single(t => t.Name == "1.1.0").Target));
59+
fixture.AssertFullSemver("1.1.0");
60+
61+
// create hotfix branch
62+
fixture.Repository.Checkout(fixture.Repository.CreateBranch("hotfixes/1.1.1"));
63+
fixture.AssertFullSemver("1.1.0"); // We are still on a tagged commit
64+
fixture.Repository.MakeACommit();
65+
66+
fixture.AssertFullSemver("1.1.1-beta.1+1");
67+
fixture.Repository.MakeACommit();
68+
fixture.AssertFullSemver("1.1.1-beta.1+2");
69+
}
70+
}
71+
4572
[Test]
4673
public void PatchOlderReleaseExample()
4774
{

src/GitVersionCore.Tests/IntegrationTests/ReleaseBranchScenarios.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,22 @@ public void CanTakeVersionFromReleaseBranch()
7171
}
7272
}
7373

74+
[Test]
75+
public void CanTakeVersionFromReleasesBranch()
76+
{
77+
using (var fixture = new EmptyRepositoryFixture(new Config()))
78+
{
79+
fixture.Repository.MakeATaggedCommit("1.0.3");
80+
fixture.Repository.MakeCommits(5);
81+
fixture.Repository.CreateBranch("releases/2.0.0");
82+
fixture.Repository.Checkout("releases/2.0.0");
83+
84+
fixture.AssertFullSemver("2.0.0-beta.1+0");
85+
fixture.Repository.MakeCommits(2);
86+
fixture.AssertFullSemver("2.0.0-beta.1+2");
87+
}
88+
}
89+
7490
[Test]
7591
public void ReleaseBranchWithNextVersionSetInConfig()
7692
{
@@ -95,7 +111,7 @@ public void CanTakeVersionFromReleaseBranchWithTagOverridden()
95111
{
96112
Branches =
97113
{
98-
{ "release[/-]", new BranchConfig { Tag = "rc" } }
114+
{ "releases?[/-]", new BranchConfig { Tag = "rc" } }
99115
}
100116
};
101117
using (var fixture = new EmptyRepositoryFixture(config))

src/GitVersionCore/Configuration/ConfigurationProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ public static void ApplyDefaultsTo(Config config)
3131
var configBranches = config.Branches.ToList();
3232

3333
ApplyBranchDefaults(config, GetOrCreateBranchDefaults(config, "master"), defaultTag: string.Empty, defaultPreventIncrement: true);
34-
ApplyBranchDefaults(config, GetOrCreateBranchDefaults(config, "release[/-]"), defaultTag: "beta", defaultPreventIncrement: true);
34+
ApplyBranchDefaults(config, GetOrCreateBranchDefaults(config, "releases?[/-]"), defaultTag: "beta", defaultPreventIncrement: true);
3535
ApplyBranchDefaults(config, GetOrCreateBranchDefaults(config, "features?[/-]"), defaultIncrementStrategy: IncrementStrategy.Inherit);
3636
ApplyBranchDefaults(config, GetOrCreateBranchDefaults(config, @"(pull|pull\-requests|pr)[/-]"),
3737
defaultTag: "PullRequest",
3838
defaultTagNumberPattern: @"[/-](?<number>\d+)[-/]",
3939
defaultIncrementStrategy: IncrementStrategy.Inherit);
40-
ApplyBranchDefaults(config, GetOrCreateBranchDefaults(config, "hotfix[/-]"), defaultTag: "beta");
40+
ApplyBranchDefaults(config, GetOrCreateBranchDefaults(config, "hotfix(es)?[/-]"), defaultTag: "beta");
4141
ApplyBranchDefaults(config, GetOrCreateBranchDefaults(config, "support[/-]"), defaultTag: string.Empty, defaultPreventIncrement: true);
4242
ApplyBranchDefaults(config, GetOrCreateBranchDefaults(config, "dev(elop)?(ment)?$"),
4343
defaultTag: "unstable",

0 commit comments

Comments
 (0)