diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2007-08-01 10:03:37 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-08-01 21:51:20 -0700 |
commit | 72a4f4b657846af6c65360d92aa09d8b7f3dfbb0 (patch) | |
tree | 7331b40f39d8b234f7b9162fd5a1d9edd40ee488 | |
parent | 50cff52f1a896118d5260c752900188e7d231cf6 (diff) | |
download | git-72a4f4b657846af6c65360d92aa09d8b7f3dfbb0.tar.gz git-72a4f4b657846af6c65360d92aa09d8b7f3dfbb0.tar.xz |
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>
-rw-r--r-- | connect.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -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"); |