]>
Commit | Line | Data |
---|---|---|
a48e1d67 JH |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2005 Junio C Hamano | |
4 | # | |
5 | ||
6 | test_description='Test pulling deltified objects | |
7 | ||
8 | ' | |
9 | . ./test-lib.sh | |
10 | ||
11 | locate_obj='s|\(..\)|.git/objects/\1/|' | |
12 | ||
13 | test_expect_success \ | |
14 | setup \ | |
15 | 'cat ../README >a && | |
16 | git-update-cache --add a && | |
17 | a0=`git-ls-files --stage | | |
18 | sed -e '\''s/^[0-7]* \([0-9a-f]*\) .*/\1/'\''` && | |
19 | ||
20 | sed -e 's/test/TEST/g' ../README >a && | |
21 | git-update-cache a && | |
22 | a1=`git-ls-files --stage | | |
23 | sed -e '\''s/^[0-7]* \([0-9a-f]*\) .*/\1/'\''` && | |
24 | tree=`git-write-tree` && | |
25 | commit=`git-commit-tree $tree </dev/null` && | |
26 | a0f=`echo "$a0" | sed -e "$locate_obj"` && | |
27 | a1f=`echo "$a1" | sed -e "$locate_obj"` && | |
28 | echo commit $commit && | |
29 | echo a0 $a0 && | |
30 | echo a1 $a1 && | |
31 | ls -l $a0f $a1f && | |
32 | echo $commit >.git/HEAD && | |
33 | git-mkdelta -v $a0 $a1 && | |
34 | ls -l $a0f $a1f' | |
35 | ||
36 | # Now commit has a tree that records delitified "a" whose SHA1 is a1. | |
37 | # Create a new repo and pull this commit into it. | |
38 | ||
39 | test_expect_success \ | |
40 | 'setup and cd into new repo' \ | |
41 | 'mkdir dest && cd dest && rm -fr .git && git-init-db' | |
42 | ||
43 | test_expect_success \ | |
44 | 'pull from deltified repo into a new repo without -d' \ | |
45 | 'rm -fr .git a && git-init-db && | |
46 | git-local-pull -v -a $commit ../.git/ && | |
47 | git-cat-file blob $a1 >a && | |
48 | diff -u a ../a' | |
49 | ||
50 | test_expect_failure \ | |
51 | 'pull from deltified repo into a new repo with -d' \ | |
52 | 'rm -fr .git a && git-init-db && | |
53 | git-local-pull -v -a -d $commit ../.git/ && | |
54 | git-cat-file blob $a1 >a && | |
55 | diff -u a ../a' | |
56 | ||
57 | test_expect_failure \ | |
58 | 'pull from deltified repo after delta failure without --recover' \ | |
59 | 'rm -f a && | |
60 | git-local-pull -v -a $commit ../.git/ && | |
61 | git-cat-file blob $a1 >a && | |
62 | diff -u a ../a' | |
63 | ||
64 | test_expect_success \ | |
65 | 'pull from deltified repo after delta failure with --recover' \ | |
66 | 'rm -f a && | |
67 | git-local-pull -v -a --recover $commit ../.git/ && | |
68 | git-cat-file blob $a1 >a && | |
69 | diff -u a ../a' | |
70 | ||
71 | test_expect_success \ | |
72 | 'missing-tree or missing-blob should be re-fetched without --recover' \ | |
73 | 'rm -f a $a0f $a1f && | |
74 | git-local-pull -v -a $commit ../.git/ && | |
75 | git-cat-file blob $a1 >a && | |
76 | diff -u a ../a' | |
77 | ||
78 | test_done | |
79 |