The second batch
[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 env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false rev-list HEAD
28 '
29
30 test_expect_success 'rev-list notices corruption (2)' '
31         test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false 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