(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:'git pack-object --include-tag' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TRASH) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:15) command_list: (command.CommandList children:[(C {(pwd)})]) ) } spids: [14] ) ] ) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:25) (Token id:Id.Lit_Chars val:'\techo c >d &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit update-index --add d &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\ttree=$(git write-tree) &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\tcommit=$(git commit-tree $tree </dev/null) &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\techo "object $commit" >sig &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\techo "type commit" >>sig &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\techo "tag mytag" >>sig &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\techo "tagger $(git var GIT_COMMITTER_IDENT)" >>sig &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\techo >>sig &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\techo "our test tag" >>sig &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\ttag=$(git mktag <sig) &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\trm d sig &&\n' span_id:37) (Token id: Id.Lit_Chars val: '\tgit update-ref refs/tags/mytag $tag && {\n' span_id: 38 ) (Token id:Id.Lit_Chars val:'\t\techo $tree &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\t\techo $commit &&\n' span_id:40) (Token id: Id.Lit_Chars val: '\t\tgit ls-tree $tree | sed -e "s/.* \\\\([0-9a-f]*\\\\)\t.*/\\\\1/"\n' span_id: 41 ) (Token id:Id.Lit_Chars val:'\t} >obj-list\n' span_id:42) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack without --include-tag' span_id:49))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:53) (Token id:Id.Lit_Chars val:'\tpackname=$(git pack-objects \\\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\t--window=0 \\\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\ttest-no-include <obj-list)\n' span_id:56) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'unpack objects' span_id:63))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:67) (Token id:Id.Lit_Chars val:'\trm -rf clone.git &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\tgit init clone.git &&\n' span_id:69) (Token id: Id.Lit_Chars val: '\tgit -C clone.git unpack-objects <test-no-include-${packname}.pack\n' span_id: 70 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check unpacked result (have commit, no tag)' span_id:77))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:81) (Token id: Id.Lit_Chars val: '\tgit rev-list --objects $commit >list.expect &&\n' span_id: 82 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git -C clone.git cat-file -e $tag &&\n' span_id:83) (Token id: Id.Lit_Chars val: '\tgit -C clone.git rev-list --objects $commit >list.actual &&\n' span_id: 84 ) (Token id:Id.Lit_Chars val:'\ttest_cmp list.expect list.actual\n' span_id:85) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack with --include-tag' span_id:92))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:96) (Token id:Id.Lit_Chars val:'\tpackname=$(git pack-objects \\\n' span_id:97) (Token id:Id.Lit_Chars val:'\t\t--window=0 \\\n' span_id:98) (Token id:Id.Lit_Chars val:'\t\t--include-tag \\\n' span_id:99) (Token id:Id.Lit_Chars val:'\t\ttest-include <obj-list)\n' span_id:100) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'unpack objects' span_id:107))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:111) (Token id:Id.Lit_Chars val:'\trm -rf clone.git &&\n' span_id:112) (Token id:Id.Lit_Chars val:'\tgit init clone.git &&\n' span_id:113) (Token id: Id.Lit_Chars val: '\tgit -C clone.git unpack-objects <test-include-${packname}.pack\n' span_id: 114 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check unpacked result (have commit, have tag)' span_id:121))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:125) (Token id: Id.Lit_Chars val: '\tgit rev-list --objects mytag >list.expect &&\n' span_id: 126 ) (Token id: Id.Lit_Chars val: '\tgit -C clone.git rev-list --objects $tag >list.actual &&\n' span_id: 127 ) (Token id:Id.Lit_Chars val:'\ttest_cmp list.expect list.actual\n' span_id:128) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'create hidden inner tag' span_id:141))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:145) (Token id:Id.Lit_Chars val:'\ttest_commit commit &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\tgit tag -m inner inner HEAD &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\tgit tag -m outer outer inner &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\tgit tag -d inner\n' span_id:149) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack explicit outer tag' span_id:156))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:160) (Token id:Id.Lit_Chars val:'\tpackname=$(\n' span_id:161) (Token id:Id.Lit_Chars val:'\t\t{\n' span_id:162) (Token id:Id.Lit_Chars val:'\t\t\techo HEAD &&\n' span_id:163) (Token id:Id.Lit_Chars val:'\t\t\techo outer\n' span_id:164) (Token id:Id.Lit_Chars val:'\t\t} |\n' span_id:165) (Token id:Id.Lit_Chars val:'\t\tgit pack-objects --revs test-hidden-explicit\n' span_id:166) (Token id:Id.Lit_Chars val:'\t)\n' span_id:167) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'unpack objects' span_id:174))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:178) (Token id:Id.Lit_Chars val:'\trm -rf clone.git &&\n' span_id:179) (Token id:Id.Lit_Chars val:'\tgit init clone.git &&\n' span_id:180) (Token id: Id.Lit_Chars val: '\tgit -C clone.git unpack-objects <test-hidden-explicit-${packname}.pack\n' span_id: 181 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check unpacked result (have all objects)' span_id:188))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:192) (Token id: Id.Lit_Chars val: '\tgit -C clone.git rev-list --objects $(git rev-parse outer HEAD)\n' span_id: 193 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack implied outer tag' span_id:200))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:204) (Token id:Id.Lit_Chars val:'\tpackname=$(\n' span_id:205) (Token id:Id.Lit_Chars val:'\t\techo HEAD |\n' span_id:206) (Token id: Id.Lit_Chars val: '\t\tgit pack-objects --revs --include-tag test-hidden-implied\n' span_id: 207 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:208) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'unpack objects' span_id:215))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:219) (Token id:Id.Lit_Chars val:'\trm -rf clone.git &&\n' span_id:220) (Token id:Id.Lit_Chars val:'\tgit init clone.git &&\n' span_id:221) (Token id: Id.Lit_Chars val: '\tgit -C clone.git unpack-objects <test-hidden-implied-${packname}.pack\n' span_id: 222 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check unpacked result (have all objects)' span_id:229))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:233) (Token id: Id.Lit_Chars val: '\tgit -C clone.git rev-list --objects $(git rev-parse outer HEAD)\n' span_id: 234 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'single-branch clone can transfer tag' span_id:241))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:245) (Token id:Id.Lit_Chars val:'\trm -rf clone.git &&\n' span_id:246) (Token id: Id.Lit_Chars val: '\tgit clone --no-local --single-branch -b master . clone.git &&\n' span_id: 247 ) (Token id:Id.Lit_Chars val:'\tgit -C clone.git fsck\n' span_id:248) ) } ) (C {(test_done)}) ] )