diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-10-21 16:04:32 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-10-21 16:04:32 -0700 |
commit | b76c561a74cd366786b7b762795fba1551b42149 (patch) | |
tree | fc62c2f0ec076276a5b949a520eb8576e94e4026 /transport.c | |
parent | afd6284a7fdbb479b5c99a87f64d7496f6fe8a27 (diff) | |
parent | 2727b71f0547f5181653940d279854e7924788fb (diff) | |
download | git-b76c561a74cd366786b7b762795fba1551b42149.tar.gz |
Merge branch 'jc/unseekable-bundle'
* jc/unseekable-bundle:
bundle: add parse_bundle_header() helper function
bundle: allowing to read from an unseekable fd
Conflicts:
transport.c
Diffstat (limited to 'transport.c')
-rw-r--r-- | transport.c | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/transport.c b/transport.c index 57138d908a..4ff21ad28d 100644 --- a/transport.c +++ b/transport.c @@ -859,28 +859,6 @@ static int is_local(const char *url) has_dos_drive_prefix(url); } -static int is_gitfile(const char *url) -{ - struct stat st; - char buf[9]; - int fd, len; - if (stat(url, &st)) - return 0; - if (!S_ISREG(st.st_mode)) - return 0; - if (st.st_size < 10 || st.st_size > 9 + PATH_MAX) - return 0; - - fd = open(url, O_RDONLY); - if (fd < 0) - die_errno("Error opening '%s'", url); - len = read_in_full(fd, buf, sizeof(buf)); - close(fd); - if (len != sizeof(buf)) - die("Error reading %s", url); - return !prefixcmp(buf, "gitdir: "); -} - static int is_file(const char *url) { struct stat buf; @@ -929,7 +907,7 @@ struct transport *transport_get(struct remote *remote, const char *url) ret->fetch = fetch_objs_via_rsync; ret->push = rsync_transport_push; ret->smart_options = NULL; - } else if (is_local(url) && is_file(url) && !is_gitfile(url)) { + } else if (is_local(url) && is_file(url) && is_bundle(url, 1)) { struct bundle_transport_data *data = xcalloc(1, sizeof(*data)); ret->data = data; ret->get_refs_list = get_refs_from_bundle; |