@@ -132,6 +132,26 @@ protected Branch()
132
132
public virtual bool IsTracking => innerBranch != null && innerBranch . IsTracking ;
133
133
}
134
134
135
+ public class Reference
136
+ {
137
+ private readonly LibGit2Sharp . Reference innerReference ;
138
+
139
+ private Reference ( LibGit2Sharp . Reference reference )
140
+ {
141
+ innerReference = reference ;
142
+ }
143
+
144
+ protected Reference ( )
145
+ {
146
+ }
147
+ public virtual string CanonicalName => innerReference . CanonicalName ;
148
+ public string TargetIdentifier => innerReference . TargetIdentifier ;
149
+
150
+ public virtual DirectReference ResolveToDirectReference ( ) => innerReference . ResolveToDirectReference ( ) ;
151
+ public static implicit operator LibGit2Sharp . Reference ( Reference d ) => d ? . innerReference ;
152
+ public static explicit operator Reference ( LibGit2Sharp . Reference b ) => b is null ? null : new Reference ( b ) ;
153
+ }
154
+
135
155
public class Remote
136
156
{
137
157
private readonly LibGit2Sharp . Remote innerRemote ;
@@ -220,12 +240,12 @@ protected ReferenceCollection()
220
240
public IEnumerator < Reference > GetEnumerator ( )
221
241
{
222
242
foreach ( var reference in innerCollection )
223
- yield return reference ;
243
+ yield return ( Reference ) reference ;
224
244
}
225
245
226
246
public virtual Reference Add ( string name , string canonicalRefNameOrObjectish )
227
247
{
228
- return innerCollection . Add ( name , canonicalRefNameOrObjectish ) ;
248
+ return ( Reference ) innerCollection . Add ( name , canonicalRefNameOrObjectish ) ;
229
249
}
230
250
231
251
public virtual DirectReference Add ( string name , ObjectId targetId )
@@ -240,7 +260,7 @@ public virtual DirectReference Add(string name, ObjectId targetId, bool allowOve
240
260
241
261
public virtual Reference UpdateTarget ( Reference directRef , ObjectId targetId )
242
262
{
243
- return innerCollection . UpdateTarget ( directRef , targetId ) ;
263
+ return ( Reference ) innerCollection . UpdateTarget ( directRef , targetId ) ;
244
264
}
245
265
246
266
public virtual ReflogCollection Log ( string canonicalName )
@@ -249,12 +269,13 @@ public virtual ReflogCollection Log(string canonicalName)
249
269
}
250
270
251
271
IEnumerator IEnumerable . GetEnumerator ( ) => GetEnumerator ( ) ;
252
- public virtual Reference this [ string name ] => innerCollection [ name ] ;
272
+ public virtual Reference this [ string name ] => ( Reference ) innerCollection [ name ] ;
253
273
public virtual Reference Head => this [ "HEAD" ] ;
254
274
255
275
public virtual IEnumerable < Reference > FromGlob ( string pattern )
256
276
{
257
- return innerCollection . FromGlob ( pattern ) ;
277
+ foreach ( var reference in innerCollection . FromGlob ( pattern ) )
278
+ yield return ( Reference ) reference ;
258
279
}
259
280
}
260
281
0 commit comments