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:
parent
50cff52f1a
commit
72a4f4b657
12
connect.c
12
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");
|
||||
|
Loading…
Reference in New Issue
Block a user