Reteach builtin-ls-remote to understand remotes
Prior to being made a builtin git-ls-remote understood that when
it was given a remote name we wanted it to resolve that to the
pre-configured URL and connect to that location. That changed when
it was converted to a builtin and many of my automation tools broke.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff --git a/builtin-ls-remote.c b/builtin-ls-remote.c
index 003580c..56f3f88 100644
--- a/builtin-ls-remote.c
+++ b/builtin-ls-remote.c
@@ -14,6 +14,7 @@
unsigned flags = 0;
const char *uploadpack = NULL;
+ struct remote *remote;
struct transport *transport;
const struct ref *ref;
@@ -52,7 +53,10 @@
if (!dest || i != argc - 1)
usage(ls_remote_usage);
- transport = transport_get(NULL, dest);
+ remote = nongit ? NULL : remote_get(dest);
+ if (remote && !remote->url_nr)
+ die("remote %s has no configured URL", dest);
+ transport = transport_get(remote, remote ? remote->url[0] : dest);
if (uploadpack != NULL)
transport_set_option(transport, TRANS_OPT_UPLOADPACK, uploadpack);