Code

Merge branch 'maint' of git://repo.or.cz/git-gui into maint
[git.git] / t / t5502-quickfetch.sh
1 #!/bin/sh
3 test_description='test quickfetch from local'
5 . ./test-lib.sh
7 test_expect_success setup '
9         test_tick &&
10         echo ichi >file &&
11         git add file &&
12         git commit -m initial &&
14         cnt=$( (
15                 git count-objects | sed -e "s/ *objects,.*//"
16         ) ) &&
17         test $cnt -eq 3
18 '
20 test_expect_success 'clone without alternate' '
22         (
23                 mkdir cloned &&
24                 cd cloned &&
25                 git init-db &&
26                 git remote add -f origin ..
27         ) &&
28         cnt=$( (
29                 cd cloned &&
30                 git count-objects | sed -e "s/ *objects,.*//"
31         ) ) &&
32         test $cnt -eq 3
33 '
35 test_expect_success 'further commits in the original' '
37         test_tick &&
38         echo ni >file &&
39         git commit -a -m second &&
41         cnt=$( (
42                 git count-objects | sed -e "s/ *objects,.*//"
43         ) ) &&
44         test $cnt -eq 6
45 '
47 test_expect_success 'copy commit and tree but not blob by hand' '
49         git rev-list --objects HEAD |
50         git pack-objects --stdout |
51         (
52                 cd cloned &&
53                 git unpack-objects
54         ) &&
56         cnt=$( (
57                 cd cloned &&
58                 git count-objects | sed -e "s/ *objects,.*//"
59         ) ) &&
60         test $cnt -eq 6
62         blob=$(git rev-parse HEAD:file | sed -e "s|..|&/|") &&
63         test -f "cloned/.git/objects/$blob" &&
64         rm -f "cloned/.git/objects/$blob" &&
66         cnt=$( (
67                 cd cloned &&
68                 git count-objects | sed -e "s/ *objects,.*//"
69         ) ) &&
70         test $cnt -eq 5
72 '
74 test_expect_success 'quickfetch should not leave a corrupted repository' '
76         (
77                 cd cloned &&
78                 git fetch
79         ) &&
81         cnt=$( (
82                 cd cloned &&
83                 git count-objects | sed -e "s/ *objects,.*//"
84         ) ) &&
85         test $cnt -eq 6
87 '
89 test_done