8000 Don't resolve SymRef Target to direct · philhack/libgit2sharp@d1b00f7 · GitHub
[go: up one dir, main page]

Skip to content

Commit d1b00f7

Browse files
committed
Don't resolve SymRef Target to direct
1 parent 726266a commit d1b00f7

File tree

2 files changed

+6
-14
lines changed

2 files changed

+6
-14
lines changed

LibGit2Sharp.Tests/ReferenceFixture.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -738,15 +738,16 @@ public void CanTellIfAReferenceIsValid(string refname, bool expectedResult)
738738
[Fact]
739739
public void CanUpdateTheTargetOfASymbolicReferenceWithAnotherSymbolicReference()
740740
{
741-
string repoPath = InitNewRepository();
741+
string repoPath = CloneBareTestRepo();
742742

743743
using (var repo = new Repository(repoPath))
744744
{
745745
Reference symbolicRef = repo.Refs.Add("refs/heads/unit_test", "refs/heads/master");
746746

747747
Reference newHead = repo.Refs.UpdateTarget(repo.Refs.Head, symbolicRef);
748-
Assert.IsType<SymbolicReference>(newHead);
748+
var symbolicHead = Assert.IsType<SymbolicReference>(newHead);
749749
Assert.Equal(symbolicRef.CanonicalName, newHead.TargetIdentifier);
750+
Assert.Equal(symbolicRef, symbolicHead.Target);
750751
}
751752
}
752753

LibGit2Sharp/Reference.cs

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,9 @@ internal static T BuildFromPtr<T>(ReferenceSafeHandle handle, Repository repo) w
4747
case GitReferenceType.Symbolic:
4848
string targetIdentifier = Proxy.git_reference_symbolic_target(handle);
4949

50-
using (ReferenceSafeHandle resolvedHandle = Proxy.git_reference_resolve(handle))
51-
{
52-
if (resolvedHandle == null)
53-
{
54-
reference = new SymbolicReference(name, targetIdentifier, null);
55-
break;
56-
}
57-
58-
var targetRef = BuildFromPtr<DirectReference>(resolvedHandle, repo);
59-
reference = new SymbolicReference(name, targetIdentifier, targetRef);
60-
break;
61-
}
50+
var targetRef = repo.Refs[targetIdentifier];
51+
reference = new SymbolicReference(name, targetIdentifier, targetRef);
52+
break;
6253

6354
case GitReferenceType.Oid:
6455
ObjectId targetOid = Proxy.git_reference_target(handle);

0 commit comments

Comments
 (0)
0