(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 show' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:20) (Token id:Id.Lit_Chars val:'\techo hello world >foo &&\n' span_id:21) (Token id:Id.Lit_Chars val:'\tH=$(git hash-object -w foo) &&\n' span_id:22) (Token id: Id.Lit_Chars val: '\tgit tag -a foo-tag -m "Tags $H" $H &&\n' span_id: 23 ) (Token id:Id.Lit_Chars val:'\tHH=$(expr "$H" : "\\(..\\)") &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tH38=$(expr "$H" : "..\\(.*\\)") &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\trm -f .git/objects/$HH/$H38\n' span_id:26) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'showing a tag that point at a missing object' span_id:33))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:37) (Token id: Id.Lit_Chars val: '\ttest_must_fail git --no-pager show foo-tag\n' span_id: 38 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'set up a bit of history' span_id:45))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:49) (Token id:Id.Lit_Chars val:'\ttest_commit main1 &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\ttest_commit main2 &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\ttest_commit main3 &&\n' span_id:52) (Token id:Id.Lit_Chars val:'\tgit tag -m "annotated tag" annotated &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\tgit checkout -b side HEAD^^ &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\ttest_commit side2 &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\ttest_commit side3 &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\ttest_merge merge main3\n' span_id:57) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'showing two commits' span_id:64))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:68) (Token id:Id.Lit_Chars val:'\tcat >expect <<-EOF &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main2)\n' span_id:70) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main3)\n' span_id:71) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:72) (Token id:Id.Lit_Chars val:'\tgit show main2 main3 >actual &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tgrep ^commit actual >actual.filtered &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual.filtered\n' span_id:75) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'showing a range walks (linear)' span_id:82))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:86) (Token id:Id.Lit_Chars val:'\tcat >expect <<-EOF &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main3)\n' span_id:88) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main2)\n' span_id:89) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:90) (Token id:Id.Lit_Chars val:'\tgit show main1..main3 >actual &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\tgrep ^commit actual >actual.filtered &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual.filtered\n' span_id:93) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'showing a range walks (Y shape, ^ first)' span_id:100))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:104) (Token id:Id.Lit_Chars val:'\tcat >expect <<-EOF &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main3)\n' span_id:106) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main2)\n' span_id:107) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:108) (Token id:Id.Lit_Chars val:'\tgit show ^side3 main3 >actual &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\tgrep ^commit actual >actual.filtered &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual.filtered\n' span_id:111) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'showing a range walks (Y shape, ^ last)' span_id:118))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:122) (Token id:Id.Lit_Chars val:'\tcat >expect <<-EOF &&\n' span_id:123) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main3)\n' span_id:124) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main2)\n' span_id:125) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:126) (Token id:Id.Lit_Chars val:'\tgit show main3 ^side3 >actual &&\n' span_id:127) (Token id:Id.Lit_Chars val:'\tgrep ^commit actual >actual.filtered &&\n' span_id:128) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual.filtered\n' span_id:129) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'showing with -N walks' span_id:136))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:140) (Token id:Id.Lit_Chars val:'\tcat >expect <<-EOF &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main3)\n' span_id:142) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main2)\n' span_id:143) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:144) (Token id:Id.Lit_Chars val:'\tgit show -2 main3 >actual &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\tgrep ^commit actual >actual.filtered &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual.filtered\n' span_id:147) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'showing annotated tag' span_id:154))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:158) (Token id:Id.Lit_Chars val:'\tcat >expect <<-EOF &&\n' span_id:159) (Token id:Id.Lit_Chars val:'\ttag annotated\n' span_id:160) (Token id: Id.Lit_Chars val: '\tcommit $(git rev-parse annotated^{commit})\n' span_id: 161 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:162) (Token id:Id.Lit_Chars val:'\tgit show annotated >actual &&\n' span_id:163) (Token id:Id.Lit_Chars val:'\tgrep -E "^(commit|tag)" actual >actual.filtered &&\n' span_id:164) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual.filtered\n' span_id:165) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'showing annotated tag plus commit' span_id:172))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:176) (Token id:Id.Lit_Chars val:'\tcat >expect <<-EOF &&\n' span_id:177) (Token id:Id.Lit_Chars val:'\ttag annotated\n' span_id:178) (Token id: Id.Lit_Chars val: '\tcommit $(git rev-parse annotated^{commit})\n' span_id: 179 ) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse side3)\n' span_id:180) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:181) (Token id:Id.Lit_Chars val:'\tgit show annotated side3 >actual &&\n' span_id:182) (Token id: Id.Lit_Chars val: '\tgrep -E "^(commit|tag)" actual >actual.filtered &&\n' span_id: 183 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual.filtered\n' span_id:184) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'showing range' span_id:191))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:195) (Token id:Id.Lit_Chars val:'\tcat >expect <<-EOF &&\n' span_id:196) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main3)\n' span_id:197) (Token id:Id.Lit_Chars val:'\tcommit $(git rev-parse main2)\n' span_id:198) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:199) (Token id: Id.Lit_Chars val: '\tgit show ^side3 annotated >actual &&\n' span_id: 200 ) (Token id:Id.Lit_Chars val:'\tgrep -E "^(commit|tag)" actual >actual.filtered &&\n' span_id:201) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual.filtered\n' span_id:202) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'-s suppresses diff' span_id:209))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:213) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:214) (Token id:Id.Lit_Chars val:'\tmerge\n' span_id:215) (Token id:Id.Lit_Chars val:'\tmain3\n' span_id:216) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:217) (Token id: Id.Lit_Chars val: '\tgit show -s --format=%s merge main3 >actual &&\n' span_id: 218 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:219) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--quiet suppresses diff' span_id:226))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:230) (Token id:Id.Lit_Chars val:'\techo main3 >expect &&\n' span_id:231) (Token id:Id.Lit_Chars val:'\tgit show --quiet --format=%s main3 >actual &&\n' span_id:232) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:233) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'show --graph is forbidden' span_id:240))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:244) (Token id: Id.Lit_Chars val: ' test_must_fail git show --graph HEAD\n' span_id: 245 ) ) } ) (C {(test_done)}) ] )