diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2009-11-18 02:42:26 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-11-17 21:45:44 -0800 |
commit | 87422439d100f020cadb63b5da8495e5fbfb8fa3 (patch) | |
tree | 8e1a273e00df82598c9a690dce95234c7293ddd1 /transport.c | |
parent | c578f51d52fe75e71d75566c2c216af989b65e6e (diff) | |
download | git-87422439d100f020cadb63b5da8495e5fbfb8fa3.tar.gz |
Allow specifying the remote helper in the url
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>
Diffstat (limited to 'transport.c')
-rw-r--r-- | transport.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/transport.c b/transport.c index 13bab4e2a1..5d814b50e4 100644 --- a/transport.c +++ b/transport.c @@ -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; |