clone: allow cloning local paths with colons in them
Usually "foo:bar" is interpreted as an ssh url. This patch allows to clone from such paths by putting at least one slash before the colon (i.e. /path/to/foo:bar or just ./foo:bar). file://foo:bar should also work, but local optimizations are off in that case, which may be unwanted. While at there, warn the users about --local being ignored in this case. Reported-by: William Giokas <1007380@gmail.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
239222f587
commit
60003340cd
@ -550,8 +550,11 @@ struct child_process *git_connect(int fd[2], const char *url_orig,
|
||||
path = strchr(end, c);
|
||||
if (path && !has_dos_drive_prefix(end)) {
|
||||
if (c == ':') {
|
||||
protocol = PROTO_SSH;
|
||||
*path++ = '\0';
|
||||
if (path < strchrnul(host, '/')) {
|
||||
protocol = PROTO_SSH;
|
||||
*path++ = '\0';
|
||||
} else /* '/' in the host part, assume local path */
|
||||
path = end;
|
||||
}
|
||||
} else
|
||||
path = end;
|
||||
|
||||
Reference in New Issue
Block a user