ae52a1882df65a05c2916450ff6101012b12ee6d
[git/git.git] / t / t5307-pack-missing-commit.sh
1 #!/bin/sh
2
3 test_description='pack should notice missing commit objects'
4
5 . ./test-lib.sh
6
7 test_expect_success setup '
8 for i in 1 2 3 4 5
9 do
10 echo "$i" >"file$i" &&
11 git add "file$i" &&
12 test_tick &&
13 git commit -m "$i" &&
14 git tag "tag$i"
15 done &&
16 obj=$(git rev-parse --verify tag3) &&
17 fanout=$(expr "$obj" : "\(..\)") &&
18 remainder=$(expr "$obj" : "..\(.*\)") &&
19 rm -f ".git/objects/$fanout/$remainder"
20 '
21
22 test_expect_success 'check corruption' '
23 test_must_fail git fsck
24 '
25
26 test_expect_success 'rev-list notices corruption (1)' '
27 test_must_fail git rev-list HEAD
28 '
29
30 test_expect_success 'rev-list notices corruption (2)' '
31 test_must_fail git rev-list --objects HEAD
32 '
33
34 test_expect_success 'pack-objects notices corruption' '
35 echo HEAD |
36 test_must_fail git pack-objects --revs pack
37 '
38
39 test_done