X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=inline;f=t%2Ft5500-fetch-pack.sh;h=48e3d1705f5e4bc7f206692276b4e3e1fe1ddf66;hb=dca3957b8581ffd0faab135191bbee3029953bd2;hp=92f12d9cfa1c1ea9ae64a8d313f8d32e04faecef;hpb=a3cc31fb059410d6b96786045947bafc2f32ce60;p=git.git diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh index 92f12d9cf..48e3d1705 100755 --- a/t/t5500-fetch-pack.sh +++ b/t/t5500-fetch-pack.sh @@ -12,11 +12,11 @@ test_description='Testing multi_ack pack fetching # Some convenience functions -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 @@ -36,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 \ @@ -50,26 +50,26 @@ function test_expect_object_count () { "test $count = $output" } -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 -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} + git-symbolic-ref HEAD refs/heads/`echo $heads | sed -e 's/^\(.\).*$/\1/'` - test_expect_success "fsck" 'git-fsck-objects --full > fsck.txt 2>&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-objects --full' + git-fsck --full' test_expect_success "new object count after $number pull" \ 'idx=`echo pack-*.idx` && @@ -97,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 @@ -128,4 +129,54 @@ pull_to_client 2nd "B" $((64*3)) 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