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;
|
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");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user