Skip to content

Commit 65d0c0c

Browse files
committed
Fixed a bunch more tests
1 parent b7b189a commit 65d0c0c

19 files changed

+46
-32
lines changed

GitVersionCore.Tests/GitVersionContextTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ public void UsesBranchSpecificConfigOverTopLevelDefaults()
4848
}
4949
};
5050
var context = new GitVersionContext(mockRepository, develop, config);
51-
context.Configuration.VersioningMode.ShouldBe(VersioningMode.ContinuousDeployment);
5251
context.Configuration.Tag.ShouldBe("alpha");
5352
}
5453

GitVersionCore.Tests/IntegrationTests/DevelopScenarios.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,21 @@ public void WhenDevelopBranchedFromMaster_MinorIsIncreased()
5757
}
5858

5959
[Test]
60-
public void MergingReleaseBranchBackIntoDevelopWithoutMergingToMaster_DoesNotBumpDevelopVersion()
60+
public void MergingReleaseBranchBackIntoDevelopWithMergingToMaster_DoesBumpDevelopVersion()
6161
{
6262
using (var fixture = new EmptyRepositoryFixture(new Config()))
6363
{
6464
fixture.Repository.MakeATaggedCommit("1.0.0");
6565
fixture.Repository.CreateBranch("develop").Checkout();
6666
fixture.Repository.MakeACommit();
6767
fixture.Repository.CreateBranch("release-2.0.0").Checkout();
68-
fixture.AssertFullSemver("2.0.0-beta.1+0");
68+
fixture.Repository.MakeACommit();
69+
fixture.Repository.Checkout("master");
70+
fixture.Repository.MergeNoFF("release-2.0.0", Constants.SignatureNow());
71+
6972
fixture.Repository.Checkout("develop");
70-
fixture.AssertFullSemver("1.1.0-unstable.1+1");
7173
fixture.Repository.MergeNoFF("release-2.0.0", Constants.SignatureNow());
72-
fixture.AssertFullSemver("1.1.0-unstable.1+1");
74+
fixture.AssertFullSemver("2.1.0-unstable.1+0");
7375
}
7476
}
7577

GitVersionCore.Tests/IntegrationTests/MasterTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public void GivenARepositoryWithTagAndNextVersionInConfig_VersionShouldMatchVers
5656
[Test]
5757
public void GivenARepositoryWithTagAndANextVersionTxtFileAndNoCommits_VersionShouldBeTag()
5858
{
59-
const string ExpectedNextVersion = "1.1.0";
59+
const string ExpectedNextVersion = "1.1.0";
6060
using (var fixture = new EmptyRepositoryFixture(new Config { NextVersion = ExpectedNextVersion }))
6161
{
6262
const string TaggedVersion = "1.0.3";

GitVersionCore.Tests/IntegrationTests/PatchScenarios.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void PatchLatestReleaseExample()
3636
fixture.AssertFullSemver("1.3.0-unstable.1+1");
3737

3838
fixture.Repository.MergeNoFF("hotfix-1.2.1", Constants.SignatureNow());
39-
fixture.AssertFullSemver("1.3.0-unstable.1+1");
39+
fixture.AssertFullSemver("1.3.0-unstable.1+0");
4040
}
4141
}
4242

GitVersionCore.Tests/IntegrationTests/PullRequestScenarios.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,8 @@ public void CanCalculatePullRequestChangesInheritingConfigFromRemoteRepo()
9191
fixture.Repository.Checkout("pull/2/merge");
9292
// If we delete the branch, it is effectively the same as remote PR
9393
fixture.Repository.Branches.Remove("feature/Foo");
94-
95-
fixture.DumpGraph();
96-
fixture.AssertFullSemver("0.2.0-PullRequest.1+3");
94+
95+
fixture.AssertFullSemver("0.2.0-PullRequest.2+3");
9796
}
9897
}
9998
}

GitVersionCore.Tests/IntegrationTests/ReleaseBranchTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public void WhenReleaseBranchIsMergedIntoDevelopHighestVersionIsTakenWithIt()
115115
fixture.Repository.Checkout("develop");
116116
fixture.Repository.MergeNoFF("release-1.0.0", Constants.SignatureNow());
117117

118-
fixture.AssertFullSemver("2.0.0-unstable.1+5");
118+
fixture.AssertFullSemver("2.1.0-unstable.1+5");
119119
}
120120
}
121121

GitVersionCore.Tests/IntegrationTests/SupportBranchScenarios.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public void WhenSupportIsBranchedAndTaggedFromAnotherSupportEnsureNewMinorIsUsed
6969
fixture.Repository.MakeACommit();
7070
fixture.Repository.MakeACommit();
7171

72-
fixture.AssertFullSemver("1.3.1+0");
72+
fixture.AssertFullSemver("1.3.0+2");
7373
}
7474
}
7575
}

GitVersionCore.Tests/TestEffectiveConfiguration.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ public TestEffectiveConfiguration(
1010
string gitTagPrefix = "v",
1111
string tag = "",
1212
string nextVersion = null,
13-
string branchPrefixToTrim = "") :
14-
base(assemblyVersioningScheme, versioningMode, gitTagPrefix, tag, nextVersion, IncrementStrategy.Patch, branchPrefixToTrim)
13+
string branchPrefixToTrim = "",
14+
bool preventIncrementForMergedBranchVersion = false) :
15+
base(assemblyVersioningScheme, versioningMode, gitTagPrefix, tag, nextVersion, IncrementStrategy.Patch, branchPrefixToTrim, preventIncrementForMergedBranchVersion)
1516
{
1617
}
1718
}

GitVersionCore.Tests/VersionCalculation/NewNextVersionCalculatorTests.cs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,11 @@ public void ShouldIncrementVersionBasedOnConfig()
1515
var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData(1, "master", "b1a34e", DateTimeOffset.Now);
1616
var sut = new NewNextVersionCalculator(baseCalculator, new TestMetaDataCalculator(semanticVersionBuildMetaData));
1717
var config = new Config();
18-
config.Branches.Add("master", new BranchConfig
19-
{
20-
Increment = IncrementStrategy.Major
21-
});
2218
var context = new GitVersionContextBuilder().WithConfig(config).Build();
2319

2420
var version = sut.FindVersion(context);
2521

26-
version.ToString().ShouldBe("2.0.0");
22+
version.ToString().ShouldBe("1.0.1");
2723
}
2824

2925
[Test]
@@ -33,10 +29,6 @@ public void DoesNotIncrementWhenBaseVersionSaysNotTo()
3329
var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData(1, "master", "b1a34e", DateTimeOffset.Now);
3430
var sut = new NewNextVersionCalculator(baseCalculator, new TestMetaDataCalculator(semanticVersionBuildMetaData));
3531
var config = new Config();
36-
config.Branches.Add("master", new BranchConfig
37-
{
38-
Increment = IncrementStrategy.Major
39-
});
4032
var context = new GitVersionContextBuilder().WithConfig(config).Build();
4133

4234
var version = sut.FindVersion(context);

GitVersionCore/Configuration/BranchConfig.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,8 @@ public BranchConfig(BranchConfig branchConfiguration)
2626

2727
[YamlMember(Alias = "increment")]
2828
public IncrementStrategy? Increment { get; set; }
29+
30+
[YamlMember(Alias = "preventIncrementOfMergedBranchVersion")]
31+
public bool? PreventIncrementOfMergedBranchVersion { get; set; }
2932
}
3033
}

GitVersionCore/Configuration/Config.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public Config()
1818
{
1919
Tag = string.Empty,
2020
Increment = IncrementStrategy.Patch,
21+
PreventIncrementOfMergedBranchVersion = true
2122
};
2223
Branches["release[/-]"] = new BranchConfig { Tag = "beta" };
2324
Branches["feature[/-]"] = new BranchConfig
@@ -30,6 +31,7 @@ public Config()
3031
{
3132
Tag = string.Empty,
3233
Increment = IncrementStrategy.Patch,
34+
PreventIncrementOfMergedBranchVersion = true
3335
};
3436
Branches["develop"] = new BranchConfig
3537
{

GitVersionCore/EffectiveConfiguration.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55
/// </summary>
66
public class EffectiveConfiguration
77
{
8-
public EffectiveConfiguration(AssemblyVersioningScheme assemblyVersioningScheme, VersioningMode versioningMode, string gitTagPrefix, string tag, string nextVersion, IncrementStrategy increment, string branchPrefixToTrim)
8+
public EffectiveConfiguration(
9+
AssemblyVersioningScheme assemblyVersioningScheme,
10+
VersioningMode versioningMode, string gitTagPrefix,
11+
string tag, string nextVersion, IncrementStrategy increment,
12+
string branchPrefixToTrim,
13+
bool preventIncrementForMergedBranchVersion)
914
{
1015
AssemblyVersioningScheme = assemblyVersioningScheme;
1116
VersioningMode = versioningMode;
@@ -14,6 +19,7 @@ public EffectiveConfiguration(AssemblyVersioningScheme assemblyVersioningScheme,
1419
NextVersion = nextVersion;
1520
Increment = increment;
1621
BranchPrefixToTrim = branchPrefixToTrim;
22+
PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
1723
}
1824

1925
public VersioningMode VersioningMode { get; private set; }
@@ -35,5 +41,7 @@ public EffectiveConfiguration(AssemblyVersioningScheme assemblyVersioningScheme,
3541
public IncrementStrategy Increment { get; private set; }
3642

3743
public string BranchPrefixToTrim { get; private set; }
44+
45+
public bool PreventIncrementForMergedBranchVersion { get; private set; }
3846
}
3947
}

GitVersionCore/GitVersionContext.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ public GitVersionContext(IRepository repository, Branch currentBranch, Config co
2828
throw new InvalidOperationException("Need a branch to operate on");
2929

3030
CurrentCommit = currentBranch.Tip;
31+
IsCurrentCommitTagged = repository.Tags.Any(t => t.Target == CurrentCommit);
3132

32-
if (repository != null && currentBranch.IsDetachedHead())
33+
if (currentBranch.IsDetachedHead())
3334
{
3435
CurrentBranch = CurrentCommit.GetBranchesContainingCommit(repository, OnlyEvaluateTrackedBranches).OnlyOrDefault() ?? currentBranch;
3536
}
@@ -46,6 +47,7 @@ public GitVersionContext(IRepository repository, Branch currentBranch, Config co
4647
public IRepository Repository { get; private set; }
4748
public Branch CurrentBranch { get; private set; }
4849
public Commit CurrentCommit { get; private set; }
50+
public bool IsCurrentCommitTagged { get; private set; }
4951

5052
void CalculateEffectiveConfiguration()
5153
{
@@ -57,9 +59,10 @@ void CalculateEffectiveConfiguration()
5759
var tag = currentBranchConfig.Value.Tag ?? "useBranchName";
5860
var nextVersion = configuration.NextVersion;
5961
var incrementStrategy = currentBranchConfig.Value.Increment ?? IncrementStrategy.Patch;
62+
var preventIncrementForMergedBranchVersion = currentBranchConfig.Value.PreventIncrementOfMergedBranchVersion ?? false;
6063
var assemblyVersioningScheme = configuration.AssemblyVersioningScheme;
6164
var gitTagPrefix = configuration.TagPrefix;
62-
Configuration = new EffectiveConfiguration(assemblyVersioningScheme, versioningMode, gitTagPrefix, tag, nextVersion, incrementStrategy, currentBranchConfig.Key);
65+
Configuration = new EffectiveConfiguration(assemblyVersioningScheme, versioningMode, gitTagPrefix, tag, nextVersion, incrementStrategy, currentBranchConfig.Key, preventIncrementForMergedBranchVersion);
6366
}
6467

6568
KeyValuePair<string, BranchConfig> GetBranchConfiguration(Branch currentBranch)

GitVersionCore/VersionCalculation/BaseVersionCalculators/ConfigNextVersionBaseVersionStrategy.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ public class ConfigNextVersionBaseVersionStrategy : BaseVersionStrategy
44
{
55
public override BaseVersion GetVersion(GitVersionContext context)
66
{
7-
if (string.IsNullOrEmpty(context.Configuration.NextVersion))
7+
if (string.IsNullOrEmpty(context.Configuration.NextVersion) || context.IsCurrentCommitTagged)
88
return null;
99
var semanticVersion = SemanticVersion.Parse(context.Configuration.NextVersion, context.Configuration.GitTagPrefix);
1010
return new BaseVersion("NextVersion in GitVersionConfig.yaml", false, true, semanticVersion, null, null);

GitVersionCore/VersionCalculation/BaseVersionCalculators/MergeMessageBaseVersionStrategy.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,13 @@ public override BaseVersion GetVersion(GitVersionContext context)
1414
SemanticVersion semanticVersion;
1515
// TODO when this approach works, inline the other class into here
1616
if (MergeMessageParser.TryParse(c, context.Configuration, out semanticVersion))
17+
{
18+
var shouldIncrement = !context.Configuration.PreventIncrementForMergedBranchVersion;
1719
return new[]
1820
{
19-
new BaseVersion(string.Format("Merge message '{0}'", c.Message.Trim()), false, true, semanticVersion, c, null)
21+
new BaseVersion(string.Format("Merge message '{0}'", c.Message.Trim()), shouldIncrement, true, semanticVersion, c, null)
2022
};
23+
}
2124
return Enumerable.Empty<BaseVersion>();
2225
})
2326
.ToArray();

GitVersionCore/VersionCalculation/NewNextVersionCalculator.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public SemanticVersion FindVersion(GitVersionContext context)
4242
int? number = 1;
4343
var lastTag = lastTagBaseVersionStrategy.GetVersion(context);
4444
if (lastTag != null &&
45-
lastTag.BaseVersionSource != context.CurrentCommit &&
45+
!context.IsCurrentCommitTagged &&
4646
MajorMinorPatchEqual(lastTag.SemanticVersion, baseVersion.SemanticVersion) &&
4747
lastTag.SemanticVersion.PreReleaseTag.HasTag())
4848
{
@@ -76,9 +76,12 @@ static void IncrementVersion(GitVersionContext context, BaseVersion baseVersion)
7676
case IncrementStrategy.Major:
7777
Logger.WriteInfo("Incrementing Major Version");
7878
baseVersion.SemanticVersion.Major++;
79+
baseVersion.SemanticVersion.Minor = 0;
80+
baseVersion.SemanticVersion.Patch = 0;
7981
break;
8082
case IncrementStrategy.Minor:
8183
baseVersion.SemanticVersion.Minor++;
84+
baseVersion.SemanticVersion.Patch = 0;
8285
Logger.WriteInfo("Incrementing Minor Version");
8386
break;
8487
case IncrementStrategy.Patch:

GitVersionTask.Tests/GitFlow/GitVersionFinderTests.AFeatureBranchDoesNotRequireASpecificPrefix.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"Major": 1,
33
"Minor": 0,
4-
"Patch": 1,
4+
"Patch": 2,
55
"PreReleaseTag": {
66
"Name": "every-feature-is-welcome",
77
"Number": 1

GitVersionTask.Tests/GitFlow/GitVersionFinderTests.AFeatureBranchPrefixIsNotIncludedInTag.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"Patch": 0,
55
"PreReleaseTag": {
66
"Name": "ABC-1234_SomeDescription",
7-
"Number": null
7+
"Number": 1
88
},
99
"BuildMetaData": {
1010
"CommitsSinceTag": 1,

GitVersionTask.Tests/UpdateAssemblyInfoTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ public void StandardExecutionMode_CanDetermineTheVersionFromALocalDevelop()
7070
public void StandardExecutionMode_CanDetermineTheVersionFromALocalFeature()
7171
{
7272
var repoPath = CheckoutLocal(ASBMTestRepoWorkingDirPath, "refs/heads/feature/one");
73-
7473
var task = new UpdateAssemblyInfo
7574
{
7675
BuildEngine = new MockBuildEngine(),

0 commit comments

Comments
 (0)