t5700: document a failure of alternates to affect fetch
If an alternate supplies some, but not all, of the objects needed for a fetch, fetch-pack nevertheless generates "want" lines for the alternate objects that are present. Demonstrate this problem via a failing test. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b6b3b6a01f
commit
acede2ebc9
@ -52,13 +52,13 @@ test_cmp expected current'
|
||||
|
||||
cd "$base_dir"
|
||||
|
||||
rm -f "$U"
|
||||
rm -f "$U.D"
|
||||
|
||||
test_expect_success 'cloning with reference (no -l -s)' \
|
||||
'GIT_DEBUG_SEND_PACK=3 git clone --reference B "file://$(pwd)/A" D 3>"$U"'
|
||||
'GIT_DEBUG_SEND_PACK=3 git clone --reference B "file://$(pwd)/A" D 3>"$U.D"'
|
||||
|
||||
test_expect_success 'fetched no objects' \
|
||||
'! grep "^want" "$U"'
|
||||
'! grep "^want" "$U.D"'
|
||||
|
||||
cd "$base_dir"
|
||||
|
||||
@ -153,4 +153,32 @@ test_expect_success 'clone with reference from a tagged repository' '
|
||||
git clone --reference=A A I
|
||||
'
|
||||
|
||||
test_expect_success 'prepare branched repository' '
|
||||
git clone A J &&
|
||||
(
|
||||
cd J &&
|
||||
git checkout -b other master^ &&
|
||||
echo other >otherfile &&
|
||||
git add otherfile &&
|
||||
git commit -m other &&
|
||||
git checkout master
|
||||
)
|
||||
'
|
||||
|
||||
rm -f "$U.K"
|
||||
|
||||
test_expect_failure 'fetch with incomplete alternates' '
|
||||
git init K &&
|
||||
echo "$base_dir/A/.git/objects" >K/.git/objects/info/alternates &&
|
||||
(
|
||||
cd K &&
|
||||
git remote add J "file://$base_dir/J" &&
|
||||
GIT_DEBUG_SEND_PACK=3 git fetch J 3>"$U.K"
|
||||
) &&
|
||||
master_object=$(cd A && git for-each-ref --format="%(objectname)" refs/heads/master) &&
|
||||
! grep "^want $master_object" "$U.K" &&
|
||||
tag_object=$(cd A && git for-each-ref --format="%(objectname)" refs/tags/HEAD) &&
|
||||
! grep "^want $tag_object" "$U.K"
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user