Skip to content

Commit 7b21ffb

Browse files
committed
Support retrieving submodule Id in TreeEntry
1 parent ac4a5f6 commit 7b21ffb

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

LibGit2Sharp.Tests/SubmoduleFixture.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,17 @@ public void CanRetrieveTheCommitIdsOfASubmodule(string name, string headId, stri
6464
Assert.Equal((ObjectId)headId, submodule.HeadCommitId);
6565
Assert.Equal((ObjectId)indexId, submodule.IndexCommitId);
6666
Assert.Equal((ObjectId)workDirId, submodule.WorkDirCommitId);
67+
68+
AssertEntryId((ObjectId)headId, repo.Head[name], c => c.Target.Id);
69+
AssertEntryId((ObjectId)indexId, repo.Index[name], i => i.Id);
6770
}
6871
}
6972

73+
private static void AssertEntryId<T>(ObjectId expected, T entry, Func<T, ObjectId> selector)
74+
{
75+
Assert.Equal(expected, ReferenceEquals(entry, null) ? null : selector(entry));
76+
}
77+
7078
[Fact]
7179
public void CanEnumerateRepositorySubmodules()
7280
{

LibGit2Sharp/TreeEntry.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ internal ObjectId TargetId
7272

7373
private GitObject RetrieveTreeEntryTarget()
7474
{
75-
if (!Type.HasAny(new[]{GitObjectType.Tree, GitObjectType.Blob}))
75+
if (!Type.HasAny(new[] { GitObjectType.Tree, GitObjectType.Blob, GitObjectType.Commit }))
7676
{
7777
throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "TreeEntry target of type '{0}' are not supported.", Type));
7878
}

0 commit comments

Comments
 (0)