Skip to content

Commit 1c7ace6

Browse files
committed
cleanup, expose only the relevant fields
1 parent 96d0f4a commit 1c7ace6

File tree

9 files changed

+33
-67
lines changed

9 files changed

+33
-67
lines changed

src/GitVersionCore.Tests/Core/RepositoryExtensionsTests.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,6 @@ public TestableReference(string canonicalName)
189189
}
190190

191191
public override string CanonicalName { get; }
192-
193-
public override DirectReference ResolveToDirectReference() => throw new NotImplementedException();
194192
}
195193
}
196194
}

src/GitVersionCore.Tests/Mocks/MockCommit.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public MockCommit(ObjectId id = null)
2626
public override string Message => MessageEx;
2727

2828
public Signature CommitterEx;
29-
public override Signature Committer => CommitterEx;
29+
public override DateTimeOffset? CommitterWhen => CommitterEx.When;
3030

3131
private readonly ObjectId idEx;
3232
public override ObjectId Id => idEx;
Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,9 @@
1-
using System.Collections.Generic;
2-
using LibGit2Sharp;
3-
using ReferenceCollection = GitVersion.ReferenceCollection;
1+
using GitVersion;
42

53
namespace GitVersionCore.Tests.Mocks
64
{
75
public class MockReferenceCollection : ReferenceCollection
86
{
9-
public override ReflogCollection Log(string canonicalName)
10-
{
11-
return new MockReflogCollection
12-
{
13-
Commits = Commits
14-
};
15-
}
167

17-
private List<Commit> Commits = new List<Commit>();
18-
19-
public new IEnumerator<Commit> GetEnumerator()
20-
{
21-
return Commits.GetEnumerator();
22-
}
23-
24-
public void Add(Commit item)
25-
{
26-
Commits.Add(item);
27-
}
288
}
299
}

src/GitVersionCore.Tests/Mocks/MockTag.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ public class MockTag : Tag
99
public override string FriendlyName => NameEx;
1010

1111
public GitObject TargetEx;
12-
public override GitObject Target => TargetEx;
1312
public TagAnnotation AnnotationEx;
1413

1514
public MockTag() { }
@@ -19,7 +18,5 @@ public MockTag(string name, GitObject target)
1918
NameEx = name;
2019
TargetEx = target;
2120
}
22-
23-
public override TagAnnotation Annotation => AnnotationEx;
2421
}
2522
}

src/GitVersionCore/Core/GitModel.cs

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,20 @@ protected Tag()
6060
public static implicit operator LibGit2Sharp.Tag(Tag d) => d?.innerTag;
6161
public static explicit operator Tag(LibGit2Sharp.Tag b) => b is null ? null : new Tag(b);
6262

63-
public virtual GitObject Target => innerTag?.Target;
63+
public virtual string TargetSha => innerTag?.Target.Sha;
6464
public virtual string FriendlyName => innerTag?.FriendlyName;
65-
public virtual TagAnnotation Annotation => innerTag?.Annotation;
65+
66+
public Commit PeeledTargetCommit()
67+
{
68+
var target = innerTag.Target;
69+
70+
while (target is TagAnnotation annotation)
71+
{
72+
target = annotation.Target;
73+
}
74+
75+
return target is LibGit2Sharp.Commit commit ? (Commit)commit : null;
76+
}
6677
}
6778

6879
public class Commit
@@ -104,9 +115,8 @@ public virtual IEnumerable<Commit> Parents
104115

105116
public virtual string Sha => innerCommit?.Sha;
106117
public virtual ObjectId Id => innerCommit?.Id;
107-
public virtual Signature Committer => innerCommit?.Committer;
118+
public virtual DateTimeOffset? CommitterWhen => innerCommit?.Committer.When;
108119
public virtual string Message => innerCommit?.Message;
109-
public virtual Tree Tree => innerCommit?.Tree;
110120
}
111121

112122
public class Branch
@@ -135,6 +145,7 @@ protected Branch()
135145
public class Reference
136146
{
137147
private readonly LibGit2Sharp.Reference innerReference;
148+
private DirectReference directReference => innerReference.ResolveToDirectReference();
138149

139150
private Reference(LibGit2Sharp.Reference reference)
140151
{
@@ -145,9 +156,11 @@ protected Reference()
145156
{
146157
}
147158
public virtual string CanonicalName => innerReference.CanonicalName;
148-
public string TargetIdentifier => innerReference.TargetIdentifier;
159+
public virtual string TargetIdentifier => innerReference.TargetIdentifier;
160+
public virtual string DirectReferenceTargetIdentifier => directReference.TargetIdentifier;
161+
public virtual ObjectId DirectReferenceTargetId => directReference.Target.Id;
149162

150-
public virtual DirectReference ResolveToDirectReference() => innerReference.ResolveToDirectReference();
163+
public virtual Reference ResolveToDirectReference() => (Reference)directReference;
151164
public static implicit operator LibGit2Sharp.Reference(Reference d) => d?.innerReference;
152165
public static explicit operator Reference(LibGit2Sharp.Reference b) => b is null ? null : new Reference(b);
153166
}
@@ -167,7 +180,6 @@ protected Remote()
167180
public static implicit operator LibGit2Sharp.Remote(Remote d) => d?.innerRemote;
168181
public static explicit operator Remote(LibGit2Sharp.Remote b) => b is null ? null : new Remote(b);
169182
public virtual string Name => innerRemote.Name;
170-
public virtual string Url => innerRemote.Url;
171183
public virtual string RefSpecs => string.Join(", ", innerRemote.FetchRefSpecs.Select(r => r.Specification));
172184
}
173185

@@ -248,26 +260,21 @@ public virtual Reference Add(string name, string canonicalRefNameOrObjectish)
248260
return (Reference)innerCollection.Add(name, canonicalRefNameOrObjectish);
249261
}
250262

251-
public virtual DirectReference Add(string name, ObjectId targetId)
263+
public virtual void Add(string name, ObjectId targetId)
252264
{
253-
return innerCollection.Add(name, targetId);
265+
innerCollection.Add(name, targetId);
254266
}
255267

256-
public virtual DirectReference Add(string name, ObjectId targetId, bool allowOverwrite)
268+
public virtual void Add(string name, ObjectId targetId, bool allowOverwrite)
257269
{
258-
return innerCollection.Add(name, targetId, allowOverwrite);
270+
innerCollection.Add(name, targetId, allowOverwrite);
259271
}
260272

261273
public virtual Reference UpdateTarget(Reference directRef, ObjectId targetId)
262274
{
263275
return (Reference)innerCollection.UpdateTarget(directRef, targetId);
264276
}
265277

266-
public virtual ReflogCollection Log(string canonicalName)
267-
{
268-
return innerCollection.Log(canonicalName);
269-
}
270-
271278
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
272279
public virtual Reference this[string name] => (Reference)innerCollection[name];
273280
public virtual Reference Head => this["HEAD"];
@@ -288,8 +295,6 @@ protected CommitCollection()
288295
{
289296
}
290297

291-
public static ICommitLog ToCommitLog(CommitCollection d) => d.innerCollection;
292-
293298
public static CommitCollection FromCommitLog(ICommitLog b) => b is null ? null : new CommitCollection(b);
294299

295300
public virtual IEnumerator<Commit> GetEnumerator()

src/GitVersionCore/Core/GitPreparer.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -277,20 +277,19 @@ private static void CreateOrUpdateLocalBranchesFromRemoteTrackingOnes(IGitReposi
277277
if (repo.Refs.Any(x => x.CanonicalName.IsEquivalentTo(localCanonicalName)))
278278
{
279279
var localRef = repo.Refs[localCanonicalName];
280-
var remotedirectReference = remoteTrackingReference.ResolveToDirectReference();
281-
if (localRef.ResolveToDirectReference().TargetIdentifier == remotedirectReference.TargetIdentifier)
280+
if (localRef.DirectReferenceTargetIdentifier == remoteTrackingReference.DirectReferenceTargetIdentifier)
282281
{
283282
log.Info($"Skipping update of '{remoteTrackingReference.CanonicalName}' as it already matches the remote ref.");
284283
continue;
285284
}
286-
var remoteRefTipId = remotedirectReference.Target.Id;
285+
var remoteRefTipId = remoteTrackingReference.DirectReferenceTargetId;
287286
log.Info($"Updating local ref '{localRef.CanonicalName}' to point at {remoteRefTipId}.");
288287
repo.Refs.UpdateTarget(localRef, remoteRefTipId);
289288
continue;
290289
}
291290

292291
log.Info($"Creating local branch from remote tracking '{remoteTrackingReference.CanonicalName}'.");
293-
repo.Refs.Add(localCanonicalName, new ObjectId(remoteTrackingReference.ResolveToDirectReference().TargetIdentifier), true);
292+
repo.Refs.Add(localCanonicalName, new ObjectId(remoteTrackingReference.DirectReferenceTargetIdentifier), true);
294293

295294
var branch = repo.Branches[branchName];
296295
repo.Branches.Update(branch, b => b.TrackedBranch = remoteTrackingReferenceName);

src/GitVersionCore/Core/RepositoryMetadataProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ public IEnumerable<SemanticVersion> GetVersionTagsOnBranch(Branch branch, string
353353
{
354354
var tags = GetValidVersionTags(tagPrefixRegex);
355355

356-
var versionTags = branch.Commits.SelectMany(c => tags.Where(t => c.Sha == t.Item1.Target.Sha).Select(t => t.Item2)).ToList();
356+
var versionTags = branch.Commits.SelectMany(c => tags.Where(t => c.Sha == t.Item1.TargetSha).Select(t => t.Item2)).ToList();
357357

358358
semanticVersionTagsOnBranchCache.Add(branch, versionTags);
359359
return versionTags;
@@ -435,7 +435,7 @@ private IEnumerable<BranchCommit> GetMergeCommitsForBranch(Branch branch, Config
435435
return new BranchCommit(findMergeBase, otherBranch);
436436
})
437437
.Where(b => b.Commit != null)
438-
.OrderByDescending(b => b.Commit.Committer.When)
438+
.OrderByDescending(b => b.Commit.CommitterWhen)
439439
.ToList();
440440
mergeBaseCommitsCache.Add(branch, branchMergeBases);
441441

src/GitVersionCore/Extensions/GitExtensions.cs

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public static class GitExtensions
1212
{
1313
public static DateTimeOffset When(this Commit commit)
1414
{
15-
return commit.Committer.When;
15+
return commit.CommitterWhen.Value;
1616
}
1717

1818
public static string NameWithoutRemote(this Branch branch)
@@ -56,19 +56,6 @@ public static IEnumerable<Branch> ExcludingBranches(this IEnumerable<Branch> bra
5656
{
5757
return branches.Where(b => branchesToExclude.All(bte => !IsSameBranch(b, bte)));
5858
}
59-
60-
public static Commit PeeledTargetCommit(this Tag tag)
61-
{
62-
var target = tag.Target;
63-
64-
while (target is TagAnnotation annotation)
65-
{
66-
target = annotation.Target;
67-
}
68-
69-
return target is LibGit2Sharp.Commit commit ? (Commit)commit : null;
70-
}
71-
7259
public static IEnumerable<Commit> CommitsPriorToThan(this Branch branch, DateTimeOffset olderThan)
7360
{
7461
return branch.Commits.SkipWhile(c => c.When() > olderThan);

src/GitVersionCore/VersionCalculation/BaseVersionCalculator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public BaseVersion GetBaseVersion()
7575
BaseVersion baseVersionWithOldestSource;
7676
if (matchingVersionsOnceIncremented.Any())
7777
{
78-
var oldest = matchingVersionsOnceIncremented.Aggregate((v1, v2) => v1.Version.BaseVersionSource.Committer.When < v2.Version.BaseVersionSource.Committer.When ? v1 : v2);
78+
var oldest = matchingVersionsOnceIncremented.Aggregate((v1, v2) => v1.Version.BaseVersionSource.CommitterWhen < v2.Version.BaseVersionSource.CommitterWhen ? v1 : v2);
7979
baseVersionWithOldestSource = oldest.Version;
8080
maxVersion = oldest;
8181
log.Info($"Found multiple base versions which will produce the same SemVer ({maxVersion.IncrementedVersion}), taking oldest source for commit counting ({baseVersionWithOldestSource.Source})");
@@ -85,7 +85,7 @@ public BaseVersion GetBaseVersion()
8585
baseVersionWithOldestSource = baseVersions
8686
.Where(v => v.Version.BaseVersionSource != null)
8787
.OrderByDescending(v => v.IncrementedVersion)
88-
.ThenByDescending(v => v.Version.BaseVersionSource.Committer.When)
88+
.ThenByDescending(v => v.Version.BaseVersionSource.CommitterWhen)
8989
.First()
9090
.Version;
9191
}

0 commit comments

Comments
 (0)