Skip to content

Commit 336bd63

Browse files
committed
Refactor semantic version handling with dedicated tuple type
Replaced `KeyValuePair` with a more descriptive `CommitSemanticVersion` tuple across semantic versioning logic to simplify and standardize code. Adjusted related method implementations and ordering logic accordingly for improved readability and maintainability. Removed redundant code paths and streamlined syntax in mainline version strategy.
1 parent 67b3bfe commit 336bd63

File tree

2 files changed

+24
-27
lines changed

2 files changed

+24
-27
lines changed

src/GitVersion.Core/Core/TaggedSemanticVersionService.cs

+18-16
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
using GitVersion.Extensions;
33
using GitVersion.Git;
44

5+
using CommitSemanticVersion = (GitVersion.Git.ICommit Commit, GitVersion.SemanticVersionWithTag SemanticVersion);
6+
57
namespace GitVersion.Core;
68

79
internal sealed class TaggedSemanticVersionService(
@@ -19,7 +21,7 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersions(
1921
DateTimeOffset? notOlderThan,
2022
TaggedSemanticVersions taggedSemanticVersion)
2123
{
22-
IEnumerable<IEnumerable<KeyValuePair<ICommit, SemanticVersionWithTag>>> GetElements()
24+
IEnumerable<IEnumerable<CommitSemanticVersion>> GetElements()
2325
{
2426
if (taggedSemanticVersion.HasFlag(TaggedSemanticVersions.OfBranch))
2527
{
@@ -67,8 +69,8 @@ IEnumerable<IEnumerable<KeyValuePair<ICommit, SemanticVersionWithTag>>> GetEleme
6769
}
6870

6971
return GetElements().SelectMany(elements => elements).Distinct()
70-
.OrderByDescending(element => element.Key.When)
71-
.ToLookup(element => element.Key, element => element.Value);
72+
.OrderByDescending(element => element.Commit.When)
73+
.ToLookup(element => element.Commit, element => element.SemanticVersion);
7274
}
7375

7476
public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersionsOfBranch(
@@ -87,11 +89,11 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersionsOfBranc
8789
label: label,
8890
notOlderThan: notOlderThan);
8991

90-
return result.Distinct().OrderByDescending(element => element.Key.When)
91-
.ToLookup(element => element.Key, element => element.Value);
92+
return result.Distinct().OrderByDescending(element => element.Commit.When)
93+
.ToLookup(element => element.Commit, element => element.SemanticVersion);
9294
}
9395

94-
private IEnumerable<KeyValuePair<ICommit, SemanticVersionWithTag>> GetTaggedSemanticVersionsOfBranchInternal(
96+
private IEnumerable<CommitSemanticVersion> GetTaggedSemanticVersionsOfBranchInternal(
9597
IBranch branch,
9698
string? tagPrefix,
9799
SemanticVersionFormat format,
@@ -110,7 +112,7 @@ private IEnumerable<KeyValuePair<ICommit, SemanticVersionWithTag>> GetTaggedSema
110112
{
111113
if (semanticVersion.Value.IsMatchForBranchSpecificLabel(label))
112114
{
113-
yield return new(grouping.Key, semanticVersion);
115+
yield return (grouping.Key, semanticVersion);
114116
}
115117
}
116118
}
@@ -133,11 +135,11 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersionsOfMerge
133135
notOlderThan: notOlderThan);
134136

135137
return result.Distinct()
136-
.OrderByDescending(element => element.Key.When)
137-
.ToLookup(element => element.Key, element => element.Value);
138+
.OrderByDescending(element => element.Commit.When)
139+
.ToLookup(element => element.Commit, element => element.SemanticVersion);
138140
}
139141

140-
private IEnumerable<KeyValuePair<ICommit, SemanticVersionWithTag>> GetTaggedSemanticVersionsOfMergeTargetInternal(
142+
private IEnumerable<CommitSemanticVersion> GetTaggedSemanticVersionsOfMergeTargetInternal(
141143
IBranch branch,
142144
string? tagPrefix,
143145
SemanticVersionFormat format,
@@ -178,11 +180,11 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersionsOfMainB
178180
excludeBranches: excludeBranches);
179181

180182
return result.Distinct()
181-
.OrderByDescending(element => element.Key.When)
182-
.ToLookup(element => element.Key, element => element.Value);
183+
.OrderByDescending(element => element.Commit.When)
184+
.ToLookup(element => element.Commit, element => element.SemanticVersion);
183185
}
184186

185-
private IEnumerable<KeyValuePair<ICommit, SemanticVersionWithTag>> GetTaggedSemanticVersionsOfMainBranchesInternal(
187+
private IEnumerable<CommitSemanticVersion> GetTaggedSemanticVersionsOfMainBranchesInternal(
186188
IGitVersionConfiguration configuration,
187189
DateTimeOffset? notOlderThan,
188190
string? label,
@@ -218,11 +220,11 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersionsOfRelea
218220
excludeBranches: excludeBranches);
219221

220222
return result.Distinct()
221-
.OrderByDescending(element => element.Key.When)
222-
.ToLookup(element => element.Key, element => element.Value);
223+
.OrderByDescending(element => element.Commit.When)
224+
.ToLookup(element => element.Commit, element => element.SemanticVersion);
223225
}
224226

225-
private IEnumerable<KeyValuePair<ICommit, SemanticVersionWithTag>> GetTaggedSemanticVersionsOfReleaseBranchesInternal(
227+
private IEnumerable<CommitSemanticVersion> GetTaggedSemanticVersionsOfReleaseBranchesInternal(
226228
IGitVersionConfiguration configuration,
227229
DateTimeOffset? notOlderThan,
228230
string? label,

src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs

+6-11
Original file line numberDiff line numberDiff line change
@@ -211,10 +211,8 @@ private bool IterateOverCommitsRecursive(
211211
{
212212
return true;
213213
}
214-
else
215-
{
216-
returnTrueWhenTheIncrementIsKnown = true;
217-
}
214+
215+
returnTrueWhenTheIncrementIsKnown = true;
218216
}
219217
}
220218

@@ -242,7 +240,7 @@ private bool IterateOverCommitsRecursive(
242240
if (configuration.IsMainBranch == true) throw new NotImplementedException();
243241

244242
mergedCommitsInReverseOrderLazy = new(
245-
() => incrementStrategyFinder.GetMergedCommits(item, 0, Context.Configuration.Ignore).Reverse().ToList()
243+
() => [.. incrementStrategyFinder.GetMergedCommits(item, 0, Context.Configuration.Ignore).Reverse()]
246244
);
247245
childConfiguration = configuration;
248246
childBranchName = iteration.BranchName;
@@ -260,9 +258,8 @@ private bool IterateOverCommitsRecursive(
260258
iteration: childIteration,
261259
targetBranch: targetBranch,
262260
targetLabel: targetLabel,
263-
traversedCommits: traversedCommits,
264-
taggedSemanticVersions: taggedSemanticVersions
265-
);
261+
taggedSemanticVersions: taggedSemanticVersions,
262+
traversedCommits: traversedCommits);
266263

267264
commit.AddChildIteration(childIteration);
268265
if (done) return true;
@@ -316,9 +313,7 @@ private bool IterateOverCommitsRecursive(
316313
// If a main branch existing we need to ensure that it will be present at the first position in the list.
317314
foreach (var item in result)
318315
{
319-
result[item.Key] = item.Value
320-
.OrderByDescending(element => (element.Configuration.IsMainBranch ?? Context.Configuration.IsMainBranch) == true)
321-
.ToList();
316+
result[item.Key] = [.. item.Value.OrderByDescending(element => (element.Configuration.IsMainBranch ?? Context.Configuration.IsMainBranch) == true)];
322317
}
323318
return result;
324319
}

0 commit comments

Comments
 (0)