#!/bin/sh # # Copyright (c) 2005 Junio C Hamano # test_description='Test pulling deltified objects ' . ./test-lib.sh locate_obj='s|\(..\)|.git/objects/\1/|' test_expect_success \ setup \ 'cat ../README >a && git-update-cache --add a && a0=`git-ls-files --stage | sed -e '\''s/^[0-7]* \([0-9a-f]*\) .*/\1/'\''` && sed -e 's/test/TEST/g' ../README >a && git-update-cache a && a1=`git-ls-files --stage | sed -e '\''s/^[0-7]* \([0-9a-f]*\) .*/\1/'\''` && tree=`git-write-tree` && commit=`git-commit-tree $tree .git/HEAD && git-mkdelta -v $a0 $a1 && ls -l $a0f $a1f' # Now commit has a tree that records delitified "a" whose SHA1 is a1. # Create a new repo and pull this commit into it. test_expect_success \ 'setup and cd into new repo' \ 'mkdir dest && cd dest && rm -fr .git && git-init-db' test_expect_success \ 'pull from deltified repo into a new repo without -d' \ 'rm -fr .git a && git-init-db && git-local-pull -v -a $commit ../.git/ && git-cat-file blob $a1 >a && diff -u a ../a' test_expect_failure \ 'pull from deltified repo into a new repo with -d' \ 'rm -fr .git a && git-init-db && git-local-pull -v -a -d $commit ../.git/ && git-cat-file blob $a1 >a && diff -u a ../a' test_expect_failure \ 'pull from deltified repo after delta failure without --recover' \ 'rm -f a && git-local-pull -v -a $commit ../.git/ && git-cat-file blob $a1 >a && diff -u a ../a' test_expect_success \ 'pull from deltified repo after delta failure with --recover' \ 'rm -f a && git-local-pull -v -a --recover $commit ../.git/ && git-cat-file blob $a1 >a && diff -u a ../a' test_expect_success \ 'missing-tree or missing-blob should be re-fetched without --recover' \ 'rm -f a $a0f $a1f && git-local-pull -v -a $commit ../.git/ && git-cat-file blob $a1 >a && diff -u a ../a' test_done