Skip to content

Commit 6bd49cd

Browse files
committed
Make the effective configuration tag not nullable. Default value for tag will be present only on fallback branch configuration settings.
1 parent 94e2127 commit 6bd49cd

File tree

7 files changed

+19
-20
lines changed

7 files changed

+19
-20
lines changed

src/GitVersion.Core.Tests/Extensions/GitToolsTestingExtensions.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ public static void WriteVersionVariables(this RepositoryFixtureBase fixture, str
106106

107107
public static void AssertFullSemver(this RepositoryFixtureBase fixture, string fullSemver, Config? configuration = null, IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null)
108108
{
109-
configuration ??= new Config();
110-
configuration = new ConfigurationBuilder().Add(configuration).Build();
109+
configuration ??= new ConfigurationBuilder().Build();
111110
Console.WriteLine("---------");
112111

113112
try

src/GitVersion.Core.Tests/Helpers/TestConfigurationBuilder.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public sealed class TestConfigurationBuilder
88
{
99
public static TestConfigurationBuilder New => new();
1010

11-
private string? nextVerson;
11+
private string? nextVersion;
1212
private VersioningMode? versioningMode;
1313
private readonly Dictionary<string, VersioningMode?> versioningModeDictionary = new();
1414
private bool withoutAnyTrackMergeTargets;
@@ -28,7 +28,7 @@ private TestConfigurationBuilder()
2828

2929
public TestConfigurationBuilder WithNextVersion(string? value)
3030
{
31-
nextVerson = value;
31+
nextVersion = value;
3232
return this;
3333
}
3434

@@ -109,7 +109,7 @@ public Config Build()
109109
{
110110
Config configuration = new()
111111
{
112-
NextVersion = nextVerson,
112+
NextVersion = nextVersion,
113113
VersioningMode = versioningMode
114114
};
115115

src/GitVersion.Core/Configuration/ConfigExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public static BranchConfig GetFallbackBranchConfiguration(this Config configurat
8686

8787
public static string GetBranchSpecificTag(this EffectiveConfiguration configuration, ILog log, string? branchFriendlyName, string? branchNameOverride)
8888
{
89-
var tagToUse = configuration.Tag ?? "{BranchName}";
89+
var tagToUse = configuration.Tag;
9090
if (tagToUse == "useBranchName")
9191
{
9292
tagToUse = "{BranchName}";

src/GitVersion.Core/Configuration/ConfigurationBuilder.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ public class ConfigurationBuilder
1010

1111
private readonly List<Config> overrides = new();
1212

13-
public ConfigurationBuilder Add(Config config)
13+
public ConfigurationBuilder Add(Config configuration)
1414
{
15-
if (config == null) throw new ArgumentNullException(nameof(config));
15+
if (configuration == null) throw new ArgumentNullException(nameof(configuration));
1616

17-
this.overrides.Add(config);
17+
this.overrides.Add(configuration);
1818
return this;
1919
}
2020

@@ -312,10 +312,10 @@ private static Config CreateDefaultConfiguration()
312312

313313
return config;
314314

315-
void AddBranchConfig(string name, BranchConfig overrides)
315+
void AddBranchConfig(string name, BranchConfig branchConfiguration)
316316
{
317-
var emptyBranchConfiguration = new BranchConfig() { Name = name };
318-
config.Branches[name] = emptyBranchConfiguration.Apply(overrides);
317+
branchConfiguration.Name = name;
318+
config.Branches[name] = branchConfiguration;
319319
}
320320
}
321321
}

src/GitVersion.Core/Model/Configuration/EffectiveConfiguration.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public EffectiveConfiguration(Config configuration, BranchConfig currentBranchCo
4141
AssemblyFileVersioningFormat = configuration.AssemblyFileVersioningFormat;
4242
VersioningMode = currentBranchConfig.VersioningMode.Value;
4343
TagPrefix = configuration.TagPrefix;
44-
Tag = currentBranchConfig.Tag ?? @"{BranchName}";
44+
Tag = currentBranchConfig.Tag ?? string.Empty;
4545
NextVersion = configuration.NextVersion;
4646
Increment = currentBranchConfig.Increment.Value;
4747
BranchPrefixToTrim = currentBranchConfig.Regex;
@@ -72,7 +72,7 @@ protected EffectiveConfiguration(AssemblyVersioningScheme assemblyVersioningSche
7272
string? assemblyFileVersioningFormat,
7373
VersioningMode versioningMode,
7474
string? tagPrefix,
75-
string? tag,
75+
string tag,
7676
string? nextVersion,
7777
IncrementStrategy increment,
7878
string? branchPrefixToTrim,
@@ -144,7 +144,7 @@ protected EffectiveConfiguration(AssemblyVersioningScheme assemblyVersioningSche
144144
/// <summary>
145145
/// Tag to use when calculating SemVer
146146
/// </summary>
147-
public string? Tag { get; }
147+
public string Tag { get; }
148148

149149
public string? NextVersion { get; }
150150

src/GitVersion.Core/PublicAPI.Shipped.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ GitVersion.Configuration.ConfigProvider.Provide(string? workingDirectory, GitVer
191191
GitVersion.Configuration.ConfigSerializer
192192
GitVersion.Configuration.ConfigSerializer.ConfigSerializer() -> void
193193
GitVersion.Configuration.ConfigurationBuilder
194-
GitVersion.Configuration.ConfigurationBuilder.Add(GitVersion.Model.Configuration.Config! config) -> GitVersion.Configuration.ConfigurationBuilder!
194+
GitVersion.Configuration.ConfigurationBuilder.Add(GitVersion.Model.Configuration.Config! configuration) -> GitVersion.Configuration.ConfigurationBuilder!
195195
GitVersion.Configuration.ConfigurationBuilder.Build() -> GitVersion.Model.Configuration.Config!
196196
GitVersion.Configuration.ConfigurationBuilder.ConfigurationBuilder() -> void
197197
GitVersion.Configuration.ConfigurationException
@@ -668,7 +668,7 @@ GitVersion.Model.Configuration.EffectiveConfiguration.BranchPrefixToTrim.get ->
668668
GitVersion.Model.Configuration.EffectiveConfiguration.CommitDateFormat.get -> string?
669669
GitVersion.Model.Configuration.EffectiveConfiguration.CommitMessageIncrementing.get -> GitVersion.VersionCalculation.CommitMessageIncrementMode
670670
GitVersion.Model.Configuration.EffectiveConfiguration.ContinuousDeploymentFallbackTag.get -> string?
671-
GitVersion.Model.Configuration.EffectiveConfiguration.EffectiveConfiguration(GitVersion.Extensions.AssemblyVersioningScheme assemblyVersioningScheme, GitVersion.Extensions.AssemblyFileVersioningScheme assemblyFileVersioningScheme, string? assemblyInformationalFormat, string? assemblyVersioningFormat, string? assemblyFileVersioningFormat, GitVersion.VersionCalculation.VersioningMode versioningMode, string? tagPrefix, string? tag, string? nextVersion, GitVersion.IncrementStrategy increment, string? branchPrefixToTrim, bool preventIncrementOfMergedBranchVersion, string? tagNumberPattern, string? continuousDeploymentFallbackTag, bool trackMergeTarget, string? majorVersionBumpMessage, string? minorVersionBumpMessage, string? patchVersionBumpMessage, string? noBumpMessage, GitVersion.VersionCalculation.CommitMessageIncrementMode commitMessageIncrementing, System.Collections.Generic.IEnumerable<GitVersion.VersionCalculation.IVersionFilter!>! versionFilters, bool tracksReleaseBranches, bool isReleaseBranch, bool isMainline, string? commitDateFormat, bool updateBuildNumber, GitVersion.SemanticVersionFormat semanticVersionFormat, int preReleaseWeight, int tagPreReleaseWeight) -> void
671+
GitVersion.Model.Configuration.EffectiveConfiguration.EffectiveConfiguration(GitVersion.Extensions.AssemblyVersioningScheme assemblyVersioningScheme, GitVersion.Extensions.AssemblyFileVersioningScheme assemblyFileVersioningScheme, string? assemblyInformationalFormat, string? assemblyVersioningFormat, string? assemblyFileVersioningFormat, GitVersion.VersionCalculation.VersioningMode versioningMode, string? tagPrefix, string! tag, string? nextVersion, GitVersion.IncrementStrategy increment, string? branchPrefixToTrim, bool preventIncrementOfMergedBranchVersion, string? tagNumberPattern, string? continuousDeploymentFallbackTag, bool trackMergeTarget, string? majorVersionBumpMessage, string? minorVersionBumpMessage, string? patchVersionBumpMessage, string? noBumpMessage, GitVersion.VersionCalculation.CommitMessageIncrementMode commitMessageIncrementing, System.Collections.Generic.IEnumerable<GitVersion.VersionCalculation.IVersionFilter!>! versionFilters, bool tracksReleaseBranches, bool isReleaseBranch, bool isMainline, string? commitDateFormat, bool updateBuildNumber, GitVersion.SemanticVersionFormat semanticVersionFormat, int preReleaseWeight, int tagPreReleaseWeight) -> void
672672
GitVersion.Model.Configuration.EffectiveConfiguration.EffectiveConfiguration(GitVersion.Model.Configuration.Config! configuration, GitVersion.Model.Configuration.BranchConfig! currentBranchConfig) -> void
673673
GitVersion.Model.Configuration.EffectiveConfiguration.Increment.get -> GitVersion.IncrementStrategy
674674
GitVersion.Model.Configuration.EffectiveConfiguration.IsMainline.get -> bool
@@ -682,7 +682,7 @@ GitVersion.Model.Configuration.EffectiveConfiguration.PreReleaseWeight.get -> in
682682
GitVersion.Model.Configuration.EffectiveConfiguration.PreventIncrementOfMergedBranchVersion.get -> bool
683683
GitVersion.Model.Configuration.EffectiveConfiguration.SemanticVersionFormat.get -> GitVersion.SemanticVersionFormat
684684
GitVersion.Model.Configuration.EffectiveConfiguration.SemanticVersionFormat.set -> void
685-
GitVersion.Model.Configuration.EffectiveConfiguration.Tag.get -> string?
685+
GitVersion.Model.Configuration.EffectiveConfiguration.Tag.get -> string!
686686
GitVersion.Model.Configuration.EffectiveConfiguration.TagNumberPattern.get -> string?
687687
GitVersion.Model.Configuration.EffectiveConfiguration.TagPrefix.get -> string?
688688
GitVersion.Model.Configuration.EffectiveConfiguration.TagPreReleaseWeight.get -> int

src/GitVersion.Core/VersionCalculation/EffectiveBranchConfigurationFinder.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ private IEnumerable<EffectiveBranchConfiguration> GetEffectiveConfigurationsRecu
3636
branchConfiguration = childBranchConfiguration.Inherit(branchConfiguration);
3737
}
3838

39-
var fallbackBranchConfiguration = configuration.GetFallbackBranchConfiguration();
40-
4139
var sourceBranches = Array.Empty<IBranch>();
4240
if (branchConfiguration.Increment == IncrementStrategy.Inherit)
4341
{
@@ -48,6 +46,7 @@ private IEnumerable<EffectiveBranchConfiguration> GetEffectiveConfigurationsRecu
4846
{
4947
// Because the actual branch is marked with the inherit increment strategy we need to either skip the iteration or go further
5048
// while inheriting from the fallback branch configuration. This behavior is configurable via the increment settings of the configuration.
49+
var fallbackBranchConfiguration = configuration.GetFallbackBranchConfiguration();
5150
var skipTraversingOfOrphanedBranches = fallbackBranchConfiguration.Increment == null
5251
|| fallbackBranchConfiguration.Increment == IncrementStrategy.Inherit;
5352
this.log.Info(
@@ -70,6 +69,7 @@ in GetEffectiveConfigurationsRecursive(sourceBranch, configuration, branchConfig
7069
}
7170
else
7271
{
72+
var fallbackBranchConfiguration = configuration.GetFallbackBranchConfiguration();
7373
branchConfiguration = branchConfiguration.Inherit(fallbackBranchConfiguration);
7474
yield return new(branch, new EffectiveConfiguration(configuration, branchConfiguration));
7575
}

0 commit comments

Comments
 (0)