private IEnumerable<Commit> RetrieveParentsOfCommit(GitOid oid)
{
IntPtr obj;
int res = NativeMethods.git_object_lookup(out obj, repo.Handle, ref oid, GitObjectType.Commit);
Ensure.Success(res);
var parentsOfCommits = new List<Commit>();
try
{
uint parentsCount = NativeMethods.git_commit_parentcount(obj);
for (uint i = 0; i < parentsCount; i++)
{
IntPtr parentCommit;
res = NativeMethods.git_commit_parent(out parentCommit, obj, i);
Ensure.Success(res);
parentsOfCommits.Add((Commit)CreateFromPtr(parentCommit, ObjectIdOf(parentCommit), repo));
}
}
finally
{
NativeMethods.git_object_close(obj);
}
return parentsOfCommits;
}