(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'test git fast-import unpack limit'>)} spids: [3] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (C {<test_expect_success>} {(SQ <'create loose objects on import'>)} { (SQ <'\n'> <'\ttest_tick &&\n'> <'\tcat >input <<-INPUT_END &&\n'> <'\tcommit refs/heads/master\n'> <'\tcommitter $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE\n'> <'\tdata <<COMMIT\n'> <'\tinitial\n'> <'\tCOMMIT\n'> <'\n'> <'\tdone\n'> <'\tINPUT_END\n'> <'\n'> <'\tgit -c fastimport.unpackLimit=2 fast-import --done <input &&\n'> <'\tgit fsck --no-progress &&\n'> <'\ttest $(find .git/objects/?? -type f | wc -l) -eq 2 &&\n'> <'\ttest $(find .git/objects/pack -type f | wc -l) -eq 0\n'> ) } ) (C {<test_expect_success>} {(SQ <'bigger packs are preserved'>)} { (SQ <'\n'> <'\ttest_tick &&\n'> <'\tcat >input <<-INPUT_END &&\n'> <'\tcommit refs/heads/master\n'> <'\tcommitter $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE\n'> <'\tdata <<COMMIT\n'> <'\tincremental should create a pack\n'> <'\tCOMMIT\n'> <'\tfrom refs/heads/master^0\n'> <'\n'> <'\tcommit refs/heads/branch\n'> <'\tcommitter $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE\n'> <'\tdata <<COMMIT\n'> <'\tbranch\n'> <'\tCOMMIT\n'> <'\n'> <'\tdone\n'> <'\tINPUT_END\n'> <'\n'> <'\tgit -c fastimport.unpackLimit=2 fast-import --done <input &&\n'> <'\tgit fsck --no-progress &&\n'> <'\ttest $(find .git/objects/?? -type f | wc -l) -eq 2 &&\n'> <'\ttest $(find .git/objects/pack -type f | wc -l) -eq 2\n'> ) } ) (C {<test_expect_success>} {(SQ <'lookups after checkpoint works'>)} { (SQ <'\n'> <'\thello_id=$(echo hello | git hash-object --stdin -t blob) &&\n'> <'\tid="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" &&\n'> <'\tbefore=$(git rev-parse refs/heads/master^0) &&\n'> <'\t(\n'> <'\t\tcat <<-INPUT_END &&\n'> <'\t\tblob\n'> <'\t\tmark :1\n'> <'\t\tdata 6\n'> <'\t\thello\n'> <'\n'> <'\t\tcommit refs/heads/master\n'> <'\t\tmark :2\n'> <'\t\tcommitter $id\n'> <'\t\tdata <<COMMIT\n'> <'\t\tcheckpoint after this\n'> <'\t\tCOMMIT\n'> <'\t\tfrom refs/heads/master^0\n'> <'\t\tM 100644 :1 hello\n'> <'\n'> <'\t\t# pre-checkpoint\n'> <'\t\tcat-blob :1\n'> <'\t\tcat-blob $hello_id\n'> <'\t\tcheckpoint\n'> <'\t\t# post-checkpoint\n'> <'\t\tcat-blob :1\n'> <'\t\tcat-blob $hello_id\n'> <'\t\tINPUT_END\n'> <'\n'> <'\t\tn=0 &&\n'> <'\t\tfrom=$before &&\n'> <'\t\twhile test x"$from" = x"$before"\n'> <'\t\tdo\n'> <'\t\t\tif test $n -gt 30\n'> <'\t\t\tthen\n'> <'\t\t\t\techo >&2 "checkpoint did not update branch"\n'> <'\t\t\t\texit 1\n'> <'\t\t\telse\n'> <'\t\t\t\tn=$(($n + 1))\n'> <'\t\t\tfi &&\n'> <'\t\t\tsleep 1 &&\n'> <'\t\t\tfrom=$(git rev-parse refs/heads/master^0)\n'> <'\t\tdone &&\n'> <'\t\tcat <<-INPUT_END &&\n'> <'\t\tcommit refs/heads/master\n'> <'\t\tcommitter $id\n'> <'\t\tdata <<COMMIT\n'> <'\t\tmake sure from "unpacked sha1 reference" works, too\n'> <'\t\tCOMMIT\n'> <'\t\tfrom $from\n'> <'\t\tINPUT_END\n'> <'\t\techo done\n'> <'\t) | git -c fastimport.unpackLimit=100 fast-import --done &&\n'> <'\ttest $(find .git/objects/?? -type f | wc -l) -eq 6 &&\n'> <'\ttest $(find .git/objects/pack -type f | wc -l) -eq 2\n'> ) } ) (C {<test_done>}) ] )