Package: git-core Version: 1:1.4.4.3-1 Severity: normal http-fetch.c construct the pack info retreival based on the pased in base which has deliberately added a "/" at the end in perl script. This results in url of the form "http://base//objects/info/packs" being submitted to the server. I briefly go through the RFC and there is no specification saying double slash(or multiple for that matter) should be compressed into a single one. Though most apache installation does.
What I am using is amazon's S3 service which does not though. As a result, the URL is not found. The result is that I cannot serve a packed repo on S3. Below is a patch to fix this, please consider it or discuss it with upstream. --- http-fetch.c.old 2006-12-21 04:11:12.000000000 +0800 +++ http-fetch.c 2007-02-06 12:27:18.000000000 +0800 @@ -400,7 +400,7 @@ fprintf(stderr, "Getting index for pack %s\n", hex); url = xmalloc(strlen(repo->base) + 64); - sprintf(url, "%s/objects/pack/pack-%s.idx", repo->base, hex); + sprintf(url, "%sobjects/pack/pack-%s.idx", repo->base, hex); filename = sha1_pack_index_name(sha1); snprintf(tmpfile, sizeof(tmpfile), "%s.temp", filename); @@ -479,7 +479,7 @@ /* Try reusing the slot to get non-http alternates */ alt_req->http_specific = 0; - sprintf(alt_req->url, "%s/objects/info/alternates", + sprintf(alt_req->url, "%sobjects/info/alternates", base); curl_easy_setopt(slot->curl, CURLOPT_URL, alt_req->url); @@ -634,7 +634,7 @@ fprintf(stderr, "Getting alternates list for %s\n", base); url = xmalloc(strlen(base) + 31); - sprintf(url, "%s/objects/info/http-alternates", base); + sprintf(url, "%sobjects/info/http-alternates", base); /* Use a callback to process the result, since another request may fail and need to have alternates loaded before continuing */ @@ -684,7 +684,7 @@ fprintf(stderr, "Getting pack list for %s\n", repo->base); url = xmalloc(strlen(repo->base) + 21); - sprintf(url, "%s/objects/info/packs", repo->base); + sprintf(url, "%sobjects/info/packs", repo->base); slot = get_active_slot(); slot->results = &results; @@ -766,7 +766,7 @@ } url = xmalloc(strlen(repo->base) + 65); - sprintf(url, "%s/objects/pack/pack-%s.pack", + sprintf(url, "%sobjects/pack/pack-%s.pack", repo->base, sha1_to_hex(target->sha1)); filename = sha1_pack_name(target->sha1); -- System Information: Debian Release: 4.0 APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.17-co-0.8 Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Versions of packages git-core depends on: ii libc6 2.3.6.ds1-8 GNU C Library: Shared libraries ii libcurl3-gnutls 7.15.5-1 Multi-protocol file transfer libra ii libdigest-sha1-perl 2.11-1 NIST SHA-1 message digest algorith ii liberror-perl 0.15-8 Perl module for error/exception ha ii libexpat1 1.95.8-3.3 XML parsing C library - runtime li ii perl-modules 5.8.8-6.1 Core Perl modules ii rcs 5.7-18 The GNU Revision Control System ii zlib1g 1:1.2.3-13 compression library - runtime Versions of packages git-core recommends: ii curl 7.15.5-1 Get a file from an HTTP, HTTPS, FT ii git-doc 1:1.4.4.1-1 content addressable filesystem (do ii less 394-4 Pager program similar to more ii openssh-client [ssh-client] 1:4.3p2-7 Secure shell client, an rlogin/rsh ii patch 2.5.9-4 Apply a diff file to an original ii python 2.4.4-2 An interactive high-level object-o ii rsync 2.6.9-2 fast remote file copy program (lik -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]