@@ -290,13 +290,13 @@ - (PBGitRevSpecifier *)headRef
290
290
if (_headRef)
291
291
return _headRef;
292
292
293
- NSString * branch = [self parseSymbolicReference: @" HEAD" ];
294
- if (branch && [branch hasPrefix: @" refs/heads/" ])
295
- _headRef = [[PBGitRevSpecifier alloc ] initWithRef: [PBGitRef refFromString: branch ]];
293
+ GTReference *branchRef = [self parseSymbolicReference: @" HEAD" ];
294
+ if (branchRef && [branchRef.name hasPrefix: @" refs/heads/" ])
295
+ _headRef = [[PBGitRevSpecifier alloc ] initWithRef: [PBGitRef refFromString: branchRef.name ]];
296
296
else
297
297
_headRef = [[PBGitRevSpecifier alloc ] initWithRef: [PBGitRef refFromString: @" HEAD" ]];
298
298
299
- _headOID = [ self OIDForRef: [_headRef ref ]] ;
299
+ _headOID = branchRef. OID ;
300
300
301
301
return _headRef;
302
302
}
@@ -1158,23 +1158,21 @@ - (BOOL)executeHook:(NSString *)name arguments:(NSArray *)arguments output:(NSSt
1158
1158
return (ret == 0 );
1159
1159
}
1160
1160
1161
- - (NSString *) parseReference : (NSString *)reference
1161
+ - (BOOL ) revisionExists : (NSString *)spec
1162
1162
{
1163
- int ret = 1 ;
1164
- NSString *ref = [self outputForArguments: [NSArray arrayWithObjects: @" rev-parse" , @" --verify" , reference, nil ] retValue: &ret];
1165
- if (ret)
1166
- return nil ;
1167
-
1168
- return ref;
1163
+ return [self .gtRepo lookUpObjectByRevParse: spec error: nil ] != nil ;
1169
1164
}
1170
1165
1171
- - (NSString *) parseSymbolicReference : (NSString *) reference
1166
+ - (GTReference *) parseSymbolicReference : (NSString *) reference
1172
1167
{
1173
- NSString * ref = [self outputForArguments: [NSArray arrayWithObjects: @" symbolic-ref" , @" -q" , reference, nil ]];
1174
- if ([ref hasPrefix: @" refs/" ])
1175
- return ref;
1176
-
1177
- return nil ;
1168
+ GTReference *gtRef = [self .gtRepo lookUpReferenceWithName: reference error: nil ];
1169
+ if (!gtRef) return nil ;
1170
+ id target = gtRef.unresolvedTarget ;
1171
+ if ([target isKindOfClass: [GTReference class ]]) {
1172
+ NSString *ref = ((GTReference *)target).name ;
1173
+ if ([ref hasPrefix: @" refs/" ]) return target;
1174
+ }
1175
+ return nil ;
1178
1176
}
1179
1177
1180
1178
@end
0 commit comments