William Giokas wrote:

>     $ git clone /tmp/foo:bar/baz /tmp/new-baz
> but running this gives me this output::
>     Cloning into 'new-baz'...
>     ssh: Could not resolve hostname /tmp/foo: Success
>     fatal: Could not read from remote repository.

Here's a toy patch.  I haven't thought carefully about whether it's a
good idea, but maybe it can be useful for thinking about that.

Still needs documentation and tests.

My main worry is that the proposed rule for when an argument is
treated as a local path is hard to explain.  There's some precedent in
handling of bundles, though.  What do you think?


diff --git i/transport.c w/transport.c
index e6f9346c..61eba842 100644
--- i/transport.c
+++ w/transport.c
@@ -903,6 +903,7 @@ struct transport *transport_get(struct remote *remote, 
const char *url)
        const char *helper;
        struct transport *ret = xcalloc(1, sizeof(*ret));
+       struct stat st;
        ret->progress = isatty(2);
@@ -942,6 +943,7 @@ struct transport *transport_get(struct remote *remote, 
const char *url)
                ret->disconnect = close_bundle;
                ret->smart_options = NULL;
        } else if (!is_url(url)
+               || (is_local(url) && !stat(url, &st))
                || !prefixcmp(url, "file://")
                || !prefixcmp(url, "git://")
                || !prefixcmp(url, "ssh://")
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to