Reteach builtin-ls-remote to understand remotes
[git/git.git] / builtin-ls-remote.c
index 003580c..56f3f88 100644 (file)
@@ -14,6 +14,7 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
        unsigned flags = 0;
        const char *uploadpack = NULL;
 
+       struct remote *remote;
        struct transport *transport;
        const struct ref *ref;
 
@@ -52,7 +53,10 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
        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);