From: Linus Torvalds Date: Wed, 1 Aug 2007 17:03:37 +0000 (-0700) Subject: connect: accept file:// URL scheme X-Git-Tag: v1.5.3-rc5~29^2~1 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=72a4f4b657846af6c65360d92aa09d8b7f3dfbb0;p=git.git connect: accept file:// URL scheme We might make it something like: "if you use an url, we don't default to local", so the difference would be that git clone file:///directory/to/repo would work the way it does now, but git clone /directory/to/repo would default to "-l" behaviour. That kind of would make sense (and should be easy to implement. This adds support for "file://" URL to underlying connect codepath to make it happen. Signed-off-by: Linus Torvalds Signed-off-by: Junio C Hamano --- diff --git a/connect.c b/connect.c index 715cdc022..ae49c5a36 100644 --- a/connect.c +++ b/connect.c @@ -145,6 +145,8 @@ static enum protocol get_protocol(const char *name) return PROTO_SSH; if (!strcmp(name, "ssh+git")) return PROTO_SSH; + if (!strcmp(name, "file")) + return PROTO_LOCAL; die("I don't handle protocol '%s'", name); } @@ -498,13 +500,13 @@ pid_t git_connect(int fd[2], char *url, const char *prog, int flags) end = host; path = strchr(end, c); - if (c == ':') { - if (path) { + if (path) { + if (c == ':') { protocol = PROTO_SSH; *path++ = '\0'; - } else - path = host; - } + } + } else + path = end; if (!path || !*path) die("No path specified. See 'man git-pull' for valid url syntax");