(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'exercise basic bitmap functionality' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShFunction name: objpath body: (command.BraceGroup children: [ (C {(echo)} { (DQ (.git/objects/) (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:26) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s|\\(..\\)|\\1/|' span_id:40))} ) ] negated: F ) ] ) ) ) } ) ] ) ) (command.ShFunction name: list_packed_objects body: (command.BraceGroup children: [ (command.Pipeline children: [ (command.Simple words: [{(git)} {(show-index)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:63) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$1'))} ) ] ) (C {(cut)} {(-d) (SQ (Token id:Id.Lit_Chars val:' ' span_id:74))} {(-f2)}) ] negated: F ) ] ) ) (command.ShFunction name: has_any body: (command.BraceGroup children: [(C {(grep)} {(-Ff)} {(DQ ($ Id.VSub_Number '$1'))} {(DQ ($ Id.VSub_Number '$2'))})] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup repo with moderate-sized history' span_id:117))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:121) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 10); do\n' span_id:122) (Token id:Id.Lit_Chars val:'\t\ttest_commit $i\n' span_id:123) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:124) (Token id:Id.Lit_Chars val:'\tgit checkout -b other HEAD~5 &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 10); do\n' span_id:126) (Token id:Id.Lit_Chars val:'\t\ttest_commit side-$i\n' span_id:127) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:128) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:129) (Token id: Id.Lit_Chars val: '\tbitmaptip=$(git rev-parse master) &&\n' span_id: 130 ) (Token id: Id.Lit_Chars val: '\tblob=$(echo tagged-blob | git hash-object -w --stdin) &&\n' span_id: 131 ) (Token id:Id.Lit_Chars val:'\tgit tag tagged-blob $blob &&\n' span_id:132) (Token id: Id.Lit_Chars val: '\tgit config repack.writebitmaps true &&\n' span_id: 133 ) (Token id:Id.Lit_Chars val:'\tgit config pack.writebitmaphashcache true\n' span_id:134) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'full repack creates bitmaps' span_id:141))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:145) (Token id:Id.Lit_Chars val:'\tgit repack -ad &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\tls .git/objects/pack/ | grep bitmap >output &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\ttest_line_count = 1 output\n' span_id:148) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rev-list --test-bitmap verifies bitmaps' span_id:155))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:159) (Token id:Id.Lit_Chars val:'\tgit rev-list --test-bitmap HEAD\n' span_id:160) ) } ) (command.ShFunction name: rev_list_tests body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:state) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [171] ) ] ) (C {(test_expect_success)} {(DQ ('counting commits via bitmap (') ($ Id.VSub_DollarName '$state') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:185) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --count HEAD >expect &&\n' span_id: 186 ) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --use-bitmap-index --count HEAD >actual &&\n' span_id: 187 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:188) (Token id:Id.Lit_Chars val:'\t' span_id:189) ) } ) (C {(test_expect_success)} {(DQ ('counting partial commits via bitmap (') ($ Id.VSub_DollarName '$state') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:203) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --count HEAD~5..HEAD >expect &&\n' span_id: 204 ) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --use-bitmap-index --count HEAD~5..HEAD >actual &&\n' span_id: 205 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:206) (Token id:Id.Lit_Chars val:'\t' span_id:207) ) } ) (C {(test_expect_success)} {(DQ ('counting commits with limit (') ($ Id.VSub_DollarName '$state') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:221) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --count -n 1 HEAD >expect &&\n' span_id: 222 ) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --use-bitmap-index --count -n 1 HEAD >actual &&\n' span_id: 223 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:224) (Token id:Id.Lit_Chars val:'\t' span_id:225) ) } ) (C {(test_expect_success)} {(DQ ('counting non-linear history (') ($ Id.VSub_DollarName '$state') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:239) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --count other...master >expect &&\n' span_id: 240 ) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --use-bitmap-index --count other...master >actual &&\n' span_id: 241 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:242) (Token id:Id.Lit_Chars val:'\t' span_id:243) ) } ) (C {(test_expect_success)} {(DQ ('counting commits with limiting (') ($ Id.VSub_DollarName '$state') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:257) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --count HEAD -- 1.t >expect &&\n' span_id: 258 ) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --use-bitmap-index --count HEAD -- 1.t >actual &&\n' span_id: 259 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:260) (Token id:Id.Lit_Chars val:'\t' span_id:261) ) } ) (C {(test_expect_success)} {(DQ ('enumerate --objects (') ($ Id.VSub_DollarName '$state') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:275) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --objects --use-bitmap-index HEAD >tmp &&\n' span_id: 276 ) (Token id:Id.Lit_Chars val:'\t\tcut -d" " -f1 <tmp >tmp2 &&\n' span_id:277) (Token id: Id.Lit_Chars val: '\t\tsort <tmp2 >actual &&\n' span_id: 278 ) (Token id:Id.Lit_Chars val:'\t\tgit rev-list --objects HEAD >tmp &&\n' span_id:279) (Token id: Id.Lit_Chars val: '\t\tcut -d" " -f1 <tmp >tmp2 &&\n' span_id: 280 ) (Token id:Id.Lit_Chars val:'\t\tsort <tmp2 >expect &&\n' span_id:281) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect actual\n' span_id: 282 ) (Token id:Id.Lit_Chars val:'\t' span_id:283) ) } ) (C {(test_expect_success)} { (DQ ('bitmap --objects handles non-commit objects (') ($ Id.VSub_DollarName '$state') (')') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:297) (Token id: Id.Lit_Chars val: '\t\tgit rev-list --objects --use-bitmap-index HEAD tagged-blob >actual &&\n' span_id: 298 ) (Token id:Id.Lit_Chars val:'\t\tgrep $blob actual\n' span_id:299) (Token id:Id.Lit_Chars val:'\t' span_id:300) ) } ) ] ) ) (C {(rev_list_tests)} {(SQ (Token id:Id.Lit_Chars val:'full bitmap' span_id:309))}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'clone from bitmapped repository' span_id:316))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:320) (Token id: Id.Lit_Chars val: '\tgit clone --no-local --bare . clone.git &&\n' span_id: 321 ) (Token id:Id.Lit_Chars val:'\tgit rev-parse HEAD >expect &&\n' span_id:322) (Token id: Id.Lit_Chars val: '\tgit --git-dir=clone.git rev-parse HEAD >actual &&\n' span_id: 323 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:324) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup further non-bitmapped commits' span_id:331))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:335) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 10); do\n' span_id:336) (Token id:Id.Lit_Chars val:'\t\ttest_commit further-$i\n' span_id:337) (Token id:Id.Lit_Chars val:'\tdone\n' span_id:338) ) } ) (C {(rev_list_tests)} {(SQ (Token id:Id.Lit_Chars val:'partial bitmap' span_id:345))}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'fetch (partial bitmap)' span_id:352))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:356) (Token id: Id.Lit_Chars val: '\tgit --git-dir=clone.git fetch origin master:master &&\n' span_id: 357 ) (Token id:Id.Lit_Chars val:'\tgit rev-parse HEAD >expect &&\n' span_id:358) (Token id: Id.Lit_Chars val: '\tgit --git-dir=clone.git rev-parse HEAD >actual &&\n' span_id: 359 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:360) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'incremental repack cannot create bitmaps' span_id:367))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:371) (Token id:Id.Lit_Chars val:'\ttest_commit more-1 &&\n' span_id:372) (Token id:Id.Lit_Chars val:'\tfind .git/objects/pack -name "*.bitmap" >expect &&\n' span_id:373) (Token id:Id.Lit_Chars val:'\tgit repack -d &&\n' span_id:374) (Token id:Id.Lit_Chars val:'\tfind .git/objects/pack -name "*.bitmap" >actual &&\n' span_id:375) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:376) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'incremental repack can disable bitmaps' span_id:383))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:387) (Token id:Id.Lit_Chars val:'\ttest_commit more-2 &&\n' span_id:388) (Token id:Id.Lit_Chars val:'\tgit repack -d --no-write-bitmap-index\n' span_id:389) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack-objects respects --local (non-local loose)' span_id:396))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:400) (Token id:Id.Lit_Chars val:'\tgit init --bare alt.git &&\n' span_id:401) (Token id: Id.Lit_Chars val: '\techo $(pwd)/alt.git/objects >.git/objects/info/alternates &&\n' span_id: 402 ) (Token id:Id.Lit_Chars val:'\techo content1 >file1 &&\n' span_id:403) (Token id: Id.Lit_Chars val: '\t# non-local loose object which is not present in bitmapped pack\n' span_id: 404 ) (Token id:Id.Lit_Chars val:'\taltblob=$(GIT_DIR=alt.git git hash-object -w file1) &&\n' span_id:405) (Token id: Id.Lit_Chars val: '\t# non-local loose object which is also present in bitmapped pack\n' span_id: 406 ) (Token id: Id.Lit_Chars val: '\tgit cat-file blob $blob | GIT_DIR=alt.git git hash-object -w --stdin &&\n' span_id: 407 ) (Token id:Id.Lit_Chars val:'\tgit add file1 &&\n' span_id:408) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:409) (Token id:Id.Lit_Chars val:'\tgit commit -m commit_file1 &&\n' span_id:410) (Token id: Id.Lit_Chars val: '\techo HEAD | git pack-objects --local --stdout --revs >1.pack &&\n' span_id: 411 ) (Token id:Id.Lit_Chars val:'\tgit index-pack 1.pack &&\n' span_id:412) (Token id: Id.Lit_Chars val: '\tlist_packed_objects 1.idx >1.objects &&\n' span_id: 413 ) (Token id:Id.Lit_Chars val:'\tprintf "%s\\n" "$altblob" "$blob" >nonlocal-loose &&\n' span_id:414) (Token id:Id.Lit_Chars val:'\t! has_any nonlocal-loose 1.objects\n' span_id:415) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'pack-objects respects --honor-pack-keep (local non-bitmapped pack)' span_id: 422 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:426) (Token id:Id.Lit_Chars val:'\techo content2 >file2 &&\n' span_id:427) (Token id:Id.Lit_Chars val:'\tblob2=$(git hash-object -w file2) &&\n' span_id:428) (Token id:Id.Lit_Chars val:'\tgit add file2 &&\n' span_id:429) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:430) (Token id:Id.Lit_Chars val:'\tgit commit -m commit_file2 &&\n' span_id:431) (Token id:Id.Lit_Chars val:'\tprintf "%s\\n" "$blob2" "$bitmaptip" >keepobjects &&\n' span_id:432) (Token id: Id.Lit_Chars val: '\tpack2=$(git pack-objects pack2 <keepobjects) &&\n' span_id: 433 ) (Token id:Id.Lit_Chars val:'\tmv pack2-$pack2.* .git/objects/pack/ &&\n' span_id:434) (Token id: Id.Lit_Chars val: '\t>.git/objects/pack/pack2-$pack2.keep &&\n' span_id: 435 ) (Token id:Id.Lit_Chars val:'\trm $(objpath $blob2) &&\n' span_id:436) (Token id: Id.Lit_Chars val: '\techo HEAD | git pack-objects --honor-pack-keep --stdout --revs >2a.pack &&\n' span_id: 437 ) (Token id:Id.Lit_Chars val:'\tgit index-pack 2a.pack &&\n' span_id:438) (Token id: Id.Lit_Chars val: '\tlist_packed_objects 2a.idx >2a.objects &&\n' span_id: 439 ) (Token id:Id.Lit_Chars val:'\t! has_any keepobjects 2a.objects\n' span_id:440) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack-objects respects --local (non-local pack)' span_id:447))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:451) (Token id: Id.Lit_Chars val: '\tmv .git/objects/pack/pack2-$pack2.* alt.git/objects/pack/ &&\n' span_id: 452 ) (Token id: Id.Lit_Chars val: '\techo HEAD | git pack-objects --local --stdout --revs >2b.pack &&\n' span_id: 453 ) (Token id:Id.Lit_Chars val:'\tgit index-pack 2b.pack &&\n' span_id:454) (Token id: Id.Lit_Chars val: '\tlist_packed_objects 2b.idx >2b.objects &&\n' span_id: 455 ) (Token id:Id.Lit_Chars val:'\t! has_any keepobjects 2b.objects\n' span_id:456) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'pack-objects respects --honor-pack-keep (local bitmapped pack)' span_id: 463 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:467) (Token id: Id.Lit_Chars val: '\tls .git/objects/pack/ | grep bitmap >output &&\n' span_id: 468 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 1 output &&\n' span_id:469) (Token id: Id.Lit_Chars val: '\tpackbitmap=$(basename $(cat output) .bitmap) &&\n' span_id: 470 ) (Token id: Id.Lit_Chars val: '\tlist_packed_objects .git/objects/pack/$packbitmap.idx >packbitmap.objects &&\n' span_id: 471 ) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -f .git/objects/pack/$packbitmap.keep" &&\n' span_id: 472 ) (Token id:Id.Lit_Chars val:'\t>.git/objects/pack/$packbitmap.keep &&\n' span_id:473) (Token id: Id.Lit_Chars val: '\techo HEAD | git pack-objects --honor-pack-keep --stdout --revs >3a.pack &&\n' span_id: 474 ) (Token id:Id.Lit_Chars val:'\tgit index-pack 3a.pack &&\n' span_id:475) (Token id: Id.Lit_Chars val: '\tlist_packed_objects 3a.idx >3a.objects &&\n' span_id: 476 ) (Token id:Id.Lit_Chars val:'\t! has_any packbitmap.objects 3a.objects\n' span_id:477) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'pack-objects respects --local (non-local bitmapped pack)' span_id: 484 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:488) (Token id: Id.Lit_Chars val: '\tmv .git/objects/pack/$packbitmap.* alt.git/objects/pack/ &&\n' span_id: 489 ) (Token id: Id.Lit_Chars val: '\ttest_when_finished "mv alt.git/objects/pack/$packbitmap.* .git/objects/pack/" &&\n' span_id: 490 ) (Token id: Id.Lit_Chars val: '\techo HEAD | git pack-objects --local --stdout --revs >3b.pack &&\n' span_id: 491 ) (Token id:Id.Lit_Chars val:'\tgit index-pack 3b.pack &&\n' span_id:492) (Token id: Id.Lit_Chars val: '\tlist_packed_objects 3b.idx >3b.objects &&\n' span_id: 493 ) (Token id:Id.Lit_Chars val:'\t! has_any packbitmap.objects 3b.objects\n' span_id:494) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack-objects to file can use bitmap' span_id:501))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:505) (Token id: Id.Lit_Chars val: '\t# make sure we still have 1 bitmap index from previous tests\n' span_id: 506 ) (Token id:Id.Lit_Chars val:'\tls .git/objects/pack/ | grep bitmap >output &&\n' span_id:507) (Token id:Id.Lit_Chars val:'\ttest_line_count = 1 output &&\n' span_id:508) (Token id: Id.Lit_Chars val: '\t# verify equivalent packs are generated with/without using bitmap index\n' span_id: 509 ) (Token id: Id.Lit_Chars val: '\tpackasha1=$(git pack-objects --no-use-bitmap-index --all packa </dev/null) &&\n' span_id: 510 ) (Token id: Id.Lit_Chars val: '\tpackbsha1=$(git pack-objects --use-bitmap-index --all packb </dev/null) &&\n' span_id: 511 ) (Token id: Id.Lit_Chars val: '\tlist_packed_objects <packa-$packasha1.idx >packa.objects &&\n' span_id: 512 ) (Token id: Id.Lit_Chars val: '\tlist_packed_objects <packb-$packbsha1.idx >packb.objects &&\n' span_id: 513 ) (Token id:Id.Lit_Chars val:'\ttest_cmp packa.objects packb.objects\n' span_id:514) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'full repack, reusing previous bitmaps' span_id:521))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:525) (Token id:Id.Lit_Chars val:'\tgit repack -ad &&\n' span_id:526) (Token id:Id.Lit_Chars val:'\tls .git/objects/pack/ | grep bitmap >output &&\n' span_id:527) (Token id:Id.Lit_Chars val:'\ttest_line_count = 1 output\n' span_id:528) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'fetch (full bitmap)' span_id:535))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:539) (Token id: Id.Lit_Chars val: '\tgit --git-dir=clone.git fetch origin master:master &&\n' span_id: 540 ) (Token id:Id.Lit_Chars val:'\tgit rev-parse HEAD >expect &&\n' span_id:541) (Token id: Id.Lit_Chars val: '\tgit --git-dir=clone.git rev-parse HEAD >actual &&\n' span_id: 542 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:543) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'create objects for missing-HAVE tests' span_id:550))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:554) (Token id: Id.Lit_Chars val: '\tblob=$(echo "missing have" | git hash-object -w --stdin) &&\n' span_id: 555 ) (Token id: Id.Lit_Chars val: '\ttree=$(printf "100644 blob $blob\\tfile\\n" | git mktree) &&\n' span_id: 556 ) (Token id:Id.Lit_Chars val:'\tparent=$(echo parent | git commit-tree $tree) &&\n' span_id:557) (Token id: Id.Lit_Chars val: '\tcommit=$(echo commit | git commit-tree $tree -p $parent) &&\n' span_id: 558 ) (Token id:Id.Lit_Chars val:'\tcat >revs <<-EOF\n' span_id:559) (Token id:Id.Lit_Chars val:'\tHEAD\n' span_id:560) (Token id:Id.Lit_Chars val:'\t^HEAD^\n' span_id:561) (Token id:Id.Lit_Chars val:'\t^$commit\n' span_id:562) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:563) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack-objects respects --incremental' span_id:570))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:574) (Token id:Id.Lit_Chars val:'\tcat >revs2 <<-EOF &&\n' span_id:575) (Token id:Id.Lit_Chars val:'\tHEAD\n' span_id:576) (Token id:Id.Lit_Chars val:'\t$commit\n' span_id:577) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:578) (Token id: Id.Lit_Chars val: '\tgit pack-objects --incremental --stdout --revs <revs2 >4.pack &&\n' span_id: 579 ) (Token id:Id.Lit_Chars val:'\tgit index-pack 4.pack &&\n' span_id:580) (Token id: Id.Lit_Chars val: '\tlist_packed_objects 4.idx >4.objects &&\n' span_id: 581 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 4 4.objects &&\n' span_id:582) (Token id: Id.Lit_Chars val: '\tgit rev-list --objects $commit >revlist &&\n' span_id: 583 ) (Token id:Id.Lit_Chars val:'\tcut -d" " -f1 revlist |sort >objects &&\n' span_id:584) (Token id:Id.Lit_Chars val:'\ttest_cmp 4.objects objects\n' span_id:585) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack with missing blob' span_id:592))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:596) (Token id:Id.Lit_Chars val:'\trm $(objpath $blob) &&\n' span_id:597) (Token id:Id.Lit_Chars val:'\tgit pack-objects --stdout --revs <revs >/dev/null\n' span_id:598) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack with missing tree' span_id:605))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:609) (Token id:Id.Lit_Chars val:'\trm $(objpath $tree) &&\n' span_id:610) (Token id:Id.Lit_Chars val:'\tgit pack-objects --stdout --revs <revs >/dev/null\n' span_id:611) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack with missing parent' span_id:618))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:622) (Token id:Id.Lit_Chars val:'\trm $(objpath $parent) &&\n' span_id:623) (Token id:Id.Lit_Chars val:'\tgit pack-objects --stdout --revs <revs >/dev/null\n' span_id:624) ) } ) (C {(test_expect_success)} {(JGIT)} {(SQ (Token id:Id.Lit_Chars val:'we can read jgit bitmaps' span_id:633))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:637) (Token id:Id.Lit_Chars val:'\tgit clone . compat-jgit &&\n' span_id:638) (Token id:Id.Lit_Chars val:'\t(\n' span_id:639) (Token id:Id.Lit_Chars val:'\t\tcd compat-jgit &&\n' span_id:640) (Token id:Id.Lit_Chars val:'\t\trm -f .git/objects/pack/*.bitmap &&\n' span_id:641) (Token id:Id.Lit_Chars val:'\t\tjgit gc &&\n' span_id:642) (Token id:Id.Lit_Chars val:'\t\tgit rev-list --test-bitmap HEAD\n' span_id:643) (Token id:Id.Lit_Chars val:'\t)\n' span_id:644) ) } ) (C {(test_expect_success)} {(JGIT)} {(SQ (Token id:Id.Lit_Chars val:'jgit can read our bitmaps' span_id:653))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:657) (Token id:Id.Lit_Chars val:'\tgit clone . compat-us &&\n' span_id:658) (Token id:Id.Lit_Chars val:'\t(\n' span_id:659) (Token id:Id.Lit_Chars val:'\t\tcd compat-us &&\n' span_id:660) (Token id:Id.Lit_Chars val:'\t\tgit repack -adb &&\n' span_id:661) (Token id: Id.Lit_Chars val: '\t\t# jgit gc will barf if it does not like our bitmaps\n' span_id: 662 ) (Token id:Id.Lit_Chars val:'\t\tjgit gc\n' span_id:663) (Token id:Id.Lit_Chars val:'\t)\n' span_id:664) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'splitting packs does not generate bogus bitmaps' span_id:671))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:675) (Token id: Id.Lit_Chars val: '\ttest-genrandom foo $((1024 * 1024)) >rand &&\n' span_id: 676 ) (Token id:Id.Lit_Chars val:'\tgit add rand &&\n' span_id:677) (Token id: Id.Lit_Chars val: '\tgit commit -m "commit with big file" &&\n' span_id: 678 ) (Token id:Id.Lit_Chars val:'\tgit -c pack.packSizeLimit=500k repack -adb &&\n' span_id:679) (Token id:Id.Lit_Chars val:'\tgit init --bare no-bitmaps.git &&\n' span_id:680) (Token id:Id.Lit_Chars val:'\tgit -C no-bitmaps.git fetch .. HEAD\n' span_id:681) ) } ) (C {(test_done)}) ] )