summaryrefslogtreecommitdiff
path: root/transport.c
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2009-11-18 02:42:26 +0100
committerJunio C Hamano <gitster@pobox.com>2009-11-17 21:45:44 -0800
commit87422439d100f020cadb63b5da8495e5fbfb8fa3 (patch)
tree8e1a273e00df82598c9a690dce95234c7293ddd1 /transport.c
parentc578f51d52fe75e71d75566c2c216af989b65e6e (diff)
downloadgit-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.c10
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;