I've noticed when calling Repository.ListRemoteReferences with a URL that doesn't point to a valid git repo, I get a fairly unhelpful error:
LibGit2Sharp.LibGit2SharpException: this remote has never connected
at LibGit2Sharp.Core.Ensure.HandleError(Int32 result)
at LibGit2Sharp.Core.Proxy.git_remote_ls(Repository repository, RemoteHandle remote)
at LibGit2Sharp.Repository.ListRemoteReferences(String url, CredentialsHandler credentialsProvider)
at LibGit2Sharp.Repository.ListRemoteReferences(String url)
at LibGit2SharpScratchpad.Program.Main(String[] args)
I've noticed when calling
Repository.ListRemoteReferences
with a URL that doesn't point to a valid git repo, I get a fairly unhelpful error:I did some digging and noticed in
Repository.ListRemoteReferences(string, CredentialsHandler)
, there is a call togit_remote_connect
, thengit_remote_ls
. Ingit_remote_connect
, if an exception is thrown (E.g: from the call toEnsure.ZeroResult(res)
), it's caught and then ignored: https://github.com/libgit2/libgit2sharp/blob/6329bea6d315f563d7107982bccbea4325947808/LibGit2Sharp/Core/Proxy.cs#L2163-L2176It looks like this was introduced in this commit: https://github.com/libgit2/libgit2sharp/commit/6bc517f4d8103578e309ec7d8e206b6d9c6b2b3e
Because this doesn't re-throw the exception,
git_remote_ls
gets given anull
transport, and thus throws thethis remote has never connected
error.I would've expected this to re-throw the exception after disposing of the custom headers.
Seems like an easy fix and I'm happy to send through a PR, just wondering if this was intentional or a legitimate bug.