X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=t%2Ft5500-fetch-pack.sh;h=48e3d1705f5e4bc7f206692276b4e3e1fe1ddf66;hb=563b43ee45b87cf1e4bba99d3d0216f396d5c873;hp=0781bd287ee37f537c6d69e07ad6073c638faa1c;hpb=5e80092f7e6db09a40a62e837ca3f74f0bc5ad73;p=git.git diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh old mode 100644 new mode 100755 index 0781bd287..48e3d1705 --- a/t/t5500-fetch-pack.sh +++ b/t/t5500-fetch-pack.sh @@ -12,16 +12,11 @@ test_description='Testing multi_ack pack fetching # Some convenience functions -function show_count () { - commit_count=$(($commit_count+1)) - printf " %d\r" $commit_count -} - -function add () { - local name=$1 - local text="$@" - local branch=${name:0:1} - local parents="" +add () { + name=$1 + text="$@" + branch=`echo $name | sed -e 's/^\(.\).*$/\1/'` + parents="" shift while test $1; do @@ -41,13 +36,13 @@ function add () { eval ${branch}TIP=$commit } -function count_objects () { +count_objects () { ls .git/objects/??/* 2>>log2.txt | wc -l | tr -d " " } -function test_expect_object_count () { - local message=$1 - local count=$2 +test_expect_object_count () { + message=$1 + count=$2 output="$(count_objects)" test_expect_success \ @@ -55,28 +50,31 @@ function test_expect_object_count () { "test $count = $output" } -function test_repack () { - local rep=$1 - - test_expect_success "repack && prune-packed in $rep" \ - '(git-repack && git-prune-packed)2>>log.txt' -} - -function pull_to_client () { - local number=$1 - local heads=$2 - local count=$3 - local no_strict_count_check=$4 +pull_to_client () { + number=$1 + heads=$2 + count=$3 + no_strict_count_check=$4 cd client test_expect_success "$number pull" \ - "git-fetch-pack -v .. $heads > log.txt 2>&1" + "git-fetch-pack -k -v .. $heads" case "$heads" in *A*) echo $ATIP > .git/refs/heads/A;; esac case "$heads" in *B*) echo $BTIP > .git/refs/heads/B;; esac - git-symbolic-ref HEAD refs/heads/${heads:0:1} - test_expect_success "fsck" 'git-fsck-objects --full > fsck.txt 2>&1' - test_expect_object_count "after $number pull" $count - pack_count=$(grep Packing log.txt|tr -dc "0-9") + git-symbolic-ref HEAD refs/heads/`echo $heads | sed -e 's/^\(.\).*$/\1/'` + + test_expect_success "fsck" 'git-fsck --full > fsck.txt 2>&1' + + test_expect_success 'check downloaded results' \ + 'mv .git/objects/pack/pack-* . && + p=`ls -1 pack-*.pack` && + git-unpack-objects <$p && + git-fsck --full' + + test_expect_success "new object count after $number pull" \ + 'idx=`echo pack-*.idx` && + pack_count=`git-show-index <$idx | wc -l` && + test $pack_count = $count' test -z "$pack_count" && pack_count=0 if [ -z "$no_strict_count_check" ]; then test_expect_success "minimal count" "test $count = $pack_count" @@ -84,6 +82,7 @@ function pull_to_client () { test $count != $pack_count && \ echo "WARNING: $pack_count objects transmitted, only $count of which were needed" fi + rm -f pack-* cd .. } @@ -98,7 +97,8 @@ function pull_to_client () { ( mkdir client && cd client && - git-init-db 2>> log2.txt + git-init 2>> log2.txt && + git config transfer.unpacklimit 0 ) add A1 @@ -117,8 +117,6 @@ git-symbolic-ref HEAD refs/heads/B pull_to_client 1st "B A" $((11*3)) -(cd client; test_repack client) - add A11 $A10 prev=1; cur=2; while [ $cur -le 65 ]; do @@ -129,8 +127,56 @@ done pull_to_client 2nd "B" $((64*3)) -(cd client; test_repack client) - pull_to_client 3rd "A" $((1*3)) # old fails +test_expect_success "clone shallow" "git-clone --depth 2 . shallow" + +(cd shallow; git-count-objects -v) > count.shallow + +test_expect_success "clone shallow object count" \ + "test \"in-pack: 18\" = \"$(grep in-pack count.shallow)\"" + +count_output () { + sed -e '/^in-pack:/d' -e '/^packs:/d' -e '/: 0$/d' "$1" +} + +test_expect_success "clone shallow object count (part 2)" ' + test -z "$(count_output count.shallow)" +' + +test_expect_success "fsck in shallow repo" \ + "(cd shallow; git-fsck --full)" + +#test_done; exit + +add B66 $B65 +add B67 $B66 + +test_expect_success "pull in shallow repo" \ + "(cd shallow; git pull .. B)" + +(cd shallow; git-count-objects -v) > count.shallow +test_expect_success "clone shallow object count" \ + "test \"count: 6\" = \"$(grep count count.shallow)\"" + +add B68 $B67 +add B69 $B68 + +test_expect_success "deepening pull in shallow repo" \ + "(cd shallow; git pull --depth 4 .. B)" + +(cd shallow; git-count-objects -v) > count.shallow +test_expect_success "clone shallow object count" \ + "test \"count: 12\" = \"$(grep count count.shallow)\"" + +test_expect_success "deepening fetch in shallow repo" \ + "(cd shallow; git fetch --depth 4 .. A:A)" + +(cd shallow; git-count-objects -v) > count.shallow +test_expect_success "clone shallow object count" \ + "test \"count: 18\" = \"$(grep count count.shallow)\"" + +test_expect_failure "pull in shallow repo with missing merge base" \ + "(cd shallow; git pull --depth 4 .. A)" + test_done