Allow specifying the remote helper in the url
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 18 Nov 2009 01:42:26 +0000 (02:42 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 18 Nov 2009 05:45:44 +0000 (21:45 -0800)
The common case for remote helpers will be to import some repository
which can be specified by a single URL.  Support this use case by
allowing users to say:

git clone hg::https://soc.googlecode.com/hg/ soc

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
transport.c

index 13bab4e..5d814b5 100644 (file)
@@ -818,6 +818,16 @@ struct transport *transport_get(struct remote *remote, const char *url)
                url = remote->url[0];
        ret->url = url;
 
+       /* maybe it is a foreign URL? */
+       if (url) {
+               const char *p = url;
+
+               while (isalnum(*p))
+                       p++;
+               if (!prefixcmp(p, "::"))
+                       remote->foreign_vcs = xstrndup(url, p - url);
+       }
+
        if (remote && remote->foreign_vcs) {
                transport_helper_init(ret, remote->foreign_vcs);
                return ret;