Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
connect: accept file:// URL scheme
author
Linus Torvalds
<torvalds@linux-foundation.org>
Wed, 1 Aug 2007 17:03:37 +0000
(10:03 -0700)
committer
Junio C Hamano
<gitster@pobox.com>
Thu, 2 Aug 2007 04:51:20 +0000
(21:51 -0700)
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>
connect.c
patch
|
blob
|
history
raw
|
patch
| inline |
side by side
(parent:
50cff52
)
diff --git
a/connect.c
b/connect.c
index 715cdc022340f8792c4bad45ba6a84c27bbfaa7f..ae49c5a367f9f5b77b07228fcd241fd73a5711b0 100644
(file)
--- a/
connect.c
+++ b/
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");