private ObjectSafeWrapper RetrieveHeadCommitPtr(Reference head) { DirectReference oidRef = head.ResolveToDirectReference(); if (oidRef == null) { return(new ObjectSafeWrapper(null, repo)); } return(new ObjectSafeWrapper(new ObjectId(oidRef.TargetIdentifier), repo)); }
/// <summary> /// Try to lookup an object by its sha or a reference canonical name and <see cref = "GitObjectType" />. If no matching object is found, null will be returned. /// </summary> /// <param name = "shaOrReferenceName">The sha or reference canonical name to lookup.</param> /// <param name = "type">The kind of <see cref = "GitObject" /> being looked up</param> /// <returns>The <see cref = "GitObject" /> or null if it was not found.</returns> public GitObject Lookup(string shaOrReferenceName, GitObjectType type = GitObjectType.Any) { ObjectId id; if (ObjectId.TryParse(shaOrReferenceName, out id)) { return(Lookup(id, type)); } Reference reference = Refs[shaOrReferenceName]; if (!IsReferencePeelable(reference)) { return(null); } return(Lookup(reference.ResolveToDirectReference().TargetIdentifier, type)); }
private TObject RetrieveTargetObject(Reference reference) { var directReference = reference.ResolveToDirectReference(); if (directReference == null) { return(null); } var target = directReference.Target; if (target == null) { return(null); } return(repo.Lookup <TObject>(target.Id)); }
private TObject RetrieveTargetObject(Reference reference) { Ensure.ArgumentNotNull(reference, "reference"); var directReference = reference.ResolveToDirectReference(); if (directReference == null) { return(null); } var target = directReference.Target; if (target == null) { return(null); } return(repo.Lookup <TObject>(target.Id)); }
/// <summary> /// Recursively peels the target of the reference until a direct reference is encountered. /// </summary> /// <returns>The <see cref = "DirectReference" /> this <see cref = "SymbolicReference" /> points to.</returns> public override DirectReference ResolveToDirectReference() { return((Target == null) ? null : Target.ResolveToDirectReference()); }