Skip to content

Commit 29d861f

Browse files
committed
Use DirectReference as Repository ListRemoteReferences Return Type
1 parent 5481d41 commit 29d861f

File tree

5 files changed

+11
-13
lines changed

5 files changed

+11
-13
lines changed

LibGit2Sharp.Tests/RepositoryFixture.cs

+5-6
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ public void CanListRemoteReferencesWithCredentials()
659659
InconclusiveIf(() => string.IsNullOrEmpty(Constants.PrivateRepoUrl),
660660
"Populate Constants.PrivateRepo* to run this test");
661661

662-
IEnumerable<Reference> references = Repository.ListRemoteReferences(Constants.PrivateRepoUrl,
662+
IEnumerable<DirectReference> references = Repository.ListRemoteReferences(Constants.PrivateRepoUrl,
663663
Constants.PrivateRepoCredentials);
664664

665665
foreach (var reference in references)
@@ -674,7 +674,7 @@ public void CanListRemoteReferencesWithCredentials()
674674
[InlineData("git://github.com/libgit2/TestGitRepository.git")]
675675
public void CanListRemoteReferences(string url)
676676
{
677-
IEnumerable<Reference> references = Repository.ListRemoteReferences(url);
677+
IEnumerable<DirectReference> references = Repository.ListRemoteReferences(url);
678678

679679
List<Tuple<string, string>> actualRefs = references.
680680
Select(directRef => new Tuple<string, string>(directRef.CanonicalName, directRef.TargetIdentifier)).ToList();
@@ -691,7 +691,7 @@ public void CanListRemoteReferences(string url)
691691
[InlineData("http://github.com/libgit2/TestGitRepository")]
692692
public void ReadingReferenceRepositoryThroughListRemoteReferencesThrows(string url)
693693
{
694-
IEnumerable<Reference> references = Repository.ListRemoteReferences(url);
694+
IEnumerable<DirectReference> references = Repository.ListRemoteReferences(url);
695695

696696
foreach (var reference in references)
697697
{
@@ -704,12 +704,11 @@ public void ReadingReferenceRepositoryThroughListRemoteReferencesThrows(string u
704704
[InlineData("http://github.com/libgit2/TestGitRepository")]
705705
public void ReadingReferenceTargetFromListRemoteReferencesThrows(string url)
706706
{
707-
IEnumerable<Reference> references = Repository.ListRemoteReferences(url);
707+
IEnumerable<DirectReference> references = Repository.ListRemoteReferences(url);
708708

709709
foreach (var reference in references)
710710
{
711-
var directReference = (DirectReference)reference;
712-
Assert.Throws<InvalidOperationException>(() => directReference.Target);
711+
Assert.Throws<InvalidOperationException>(() => reference.Target);
713712
}
714713
}
715714
}

LibGit2Sharp/Core/Proxy.cs

-5
Original file line numberDiff line numberDiff line change
@@ -2172,11 +2172,6 @@ public static RepositorySafeHandle git_repository_new()
21722172
RepositorySafeHandle repo;
21732173
int res = NativeMethods.git_repository_new(out repo);
21742174

2175-
if (res == (int)GitErrorCode.Error)
2176-
{
2177-
throw new LibGit2SharpException("Unable to create new Repository");
2178-
}
2179-
21802175
Ensure.ZeroResult(res);
21812176

21822177
return repo;

LibGit2Sharp/DirectReference.cs

+2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ internal DirectReference(string canonicalName, IRepository repo, ObjectId target
2121
targetBuilder = new Lazy<GitObject>(() =>
2222
{
2323
if (repo == null)
24+
{
2425
throw new InvalidOperationException("Target requires a local repository");
26+
}
2527

2628
return repo.Lookup(targetId);
2729
});

LibGit2Sharp/Reference.cs

+2
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,9 @@ IRepository IBelongToARepository.Repository
204204
get
205205
{
206206
if (repo == null)
207+
{
207208
throw new InvalidOperationException("Repository requires a local repository");
209+
}
208210

209211
return repo;
210212
}

LibGit2Sharp/Repository.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ internal Commit LookupCommit(string committish)
555555
/// </para>
556556
/// <param name="url">The url to list from.</param>
557557
/// <returns>The references in the remote repository.</returns>
558-
public static IEnumerable<Reference> ListRemoteReferences(string url)
558+
public static IEnumerable<DirectReference> ListRemoteReferences(string url)
559559
{
560560
return ListRemoteReferences(url, null);
561561
}
@@ -571,7 +571,7 @@ public static IEnumerable<Reference> ListRemoteReferences(string url)
571571
/// <param name="url">The url to list from.</param>
572572
/// <param name="credentialsProvider">The <see cref="Func{Credentials}"/> used to connect to remote repository.</param>
573573
/// <returns>The references in the remote repository.</returns>
574-
public static IEnumerable<Reference> ListRemoteReferences(string url, CredentialsHandler credentialsProvider)
574+
public static IEnumerable<DirectReference> ListRemoteReferences(string url, CredentialsHandler credentialsProvider)
575575
{
576576
Ensure.ArgumentNotNull(url, "url");
577577

0 commit comments

Comments
 (0)