Merge branch 'jk/dumb-http-idx-fetch-fix'
A broken pack .idx file in the receiving repository prevented the dumb http transport from fetching a good copy of it from the other side. * jk/dumb-http-idx-fetch-fix: dumb-http: do not pass NULL path to parse_pack_index
This commit is contained in:
commit
b93b5b21b5
2
http.c
2
http.c
@ -1250,7 +1250,7 @@ static int fetch_and_setup_pack_index(struct packed_git **packs_head,
|
||||
int ret;
|
||||
|
||||
if (has_pack_index(sha1)) {
|
||||
new_pack = parse_pack_index(sha1, NULL);
|
||||
new_pack = parse_pack_index(sha1, sha1_pack_index_name(sha1));
|
||||
if (!new_pack)
|
||||
return -1; /* parse_pack_index() already issued error message */
|
||||
goto add_pack;
|
||||
|
@ -165,6 +165,24 @@ test_expect_success 'fetch notices corrupt idx' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'fetch can handle previously-fetched .idx files' '
|
||||
git checkout --orphan branch1 &&
|
||||
echo base >file &&
|
||||
git add file &&
|
||||
git commit -m base &&
|
||||
git --bare init "$HTTPD_DOCUMENT_ROOT_PATH"/repo_packed_branches.git &&
|
||||
git push "$HTTPD_DOCUMENT_ROOT_PATH"/repo_packed_branches.git branch1 &&
|
||||
git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH"/repo_packed_branches.git repack -d &&
|
||||
git checkout -b branch2 branch1 &&
|
||||
echo b2 >>file &&
|
||||
git commit -a -m b2 &&
|
||||
git push "$HTTPD_DOCUMENT_ROOT_PATH"/repo_packed_branches.git branch2 &&
|
||||
git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH"/repo_packed_branches.git repack -d &&
|
||||
git --bare init clone_packed_branches.git &&
|
||||
git --git-dir=clone_packed_branches.git fetch "$HTTPD_URL"/dumb/repo_packed_branches.git branch1:branch1 &&
|
||||
git --git-dir=clone_packed_branches.git fetch "$HTTPD_URL"/dumb/repo_packed_branches.git branch2:branch2
|
||||
'
|
||||
|
||||
test_expect_success 'did not use upload-pack service' '
|
||||
grep '/git-upload-pack' <"$HTTPD_ROOT_PATH"/access.log >act
|
||||
: >exp
|
||||
|
Loading…
Reference in New Issue
Block a user