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 <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Linus Torvalds 2007-08-01 10:03:37 -07:00 committed by Junio C Hamano
parent 50cff52f1a
commit 72a4f4b657

View File

@ -145,6 +145,8 @@ static enum protocol get_protocol(const char *name)
return PROTO_SSH; return PROTO_SSH;
if (!strcmp(name, "ssh+git")) if (!strcmp(name, "ssh+git"))
return PROTO_SSH; return PROTO_SSH;
if (!strcmp(name, "file"))
return PROTO_LOCAL;
die("I don't handle protocol '%s'", name); 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; end = host;
path = strchr(end, c); path = strchr(end, c);
if (c == ':') { if (path) {
if (path) { if (c == ':') {
protocol = PROTO_SSH; protocol = PROTO_SSH;
*path++ = '\0'; *path++ = '\0';
} else }
path = host; } else
} path = end;
if (!path || !*path) if (!path || !*path)
die("No path specified. See 'man git-pull' for valid url syntax"); die("No path specified. See 'man git-pull' for valid url syntax");