File tree Expand file tree Collapse file tree 2 files changed +43
-2
lines changed
Expand file tree Collapse file tree 2 files changed +43
-2
lines changed Original file line number Diff line number Diff line change @@ -1561,14 +1561,16 @@ static struct commit *get_revision_1(struct rev_info *revs)
15611561 (commit -> date < revs -> max_age ))
15621562 continue ;
15631563 if (add_parents_to_list (revs , commit , & revs -> commits ) < 0 )
1564- return NULL ;
1564+ die ("Failed to traverse parents of commit %s" ,
1565+ sha1_to_hex (commit -> object .sha1 ));
15651566 }
15661567
15671568 switch (simplify_commit (revs , commit )) {
15681569 case commit_ignore :
15691570 continue ;
15701571 case commit_error :
1571- return NULL ;
1572+ die ("Failed to simplify parents of commit %s" ,
1573+ sha1_to_hex (commit -> object .sha1 ));
15721574 default :
15731575 return commit ;
15741576 }
Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments