(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description) op: assign_op.Equal rhs: {(SQ <'git rev-list should notice bad commits'>)} spids: [4] ) ] redirects: [] ) (C {<.>} {<'./test-lib.sh'>}) (C {<test_expect_success>} {(SQ <setup>)} { (SQ <'\n'> <' git init &&\n'> <' git config core.compression 0 &&\n'> <' git config core.logallrefupdates false &&\n'> <' echo "foo" > foo &&\n'> <' git add foo &&\n'> <' git commit -m "first commit" &&\n'> <' echo "bar" > bar &&\n'> <' git add bar &&\n'> <' git commit -m "second commit" &&\n'> <' echo "baz" > baz &&\n'> <' git add baz &&\n'> <' git commit -m "third commit" &&\n'> <' echo "foo again" >> foo &&\n'> <' git add foo &&\n'> <' git commit -m "fourth commit" &&\n'> <' git repack -a -f -d\n'> <' '> ) } ) (C {<test_expect_success>} {(SQ <'verify number of revisions'>)} { (SQ <'\n'> <' revs=$(git rev-list --all | wc -l) &&\n'> <' test $revs -eq 4 &&\n'> <' first_commit=$(git rev-parse HEAD~3)\n'> <' '> ) } ) (C {<test_expect_success>} {(SQ <'corrupt second commit object'>)} { (SQ <'\n'> <' perl -i.bak -pe "s/second commit/socond commit/" .git/objects/pack/*.pack &&\n'> <' test_must_fail git fsck --full\n'> <' '> ) } ) (C {<test_expect_success>} {(SQ <'rev-list should fail'>)} {(SQ <'\n'> <' test_must_fail git rev-list --all > /dev/null\n'> <' '>)} ) (C {<test_expect_success>} {(SQ <'git repack _MUST_ fail'>)} {(SQ <'\n'> <' test_must_fail git repack -a -f -d\n'> <' '>)} ) (C {<test_expect_success>} {(SQ <'first commit is still available'>)} {(SQ <'\n'> <' git log $first_commit\n'> <' '>)} ) (C {<test_done>}) ] )