(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:'Test pretty formats' span_id:18))} spids: [16] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_encoding) op: assign_op.Equal rhs: {(DQ (ISO8859-1))} spids: [29] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sample_utf8_part) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:36) command_list: (command.CommandList children: [ (C {(printf)} {(DQ (f) (Id.Lit_Other '\\') (303) (Id.Lit_Other '\\') (244ng))}) ] ) ) } spids: [35] ) ] ) (command.ShFunction name: commit_msg body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:msg) op: assign_op.Equal rhs: { (DQ ('initial. an') (${ Id.VSub_Name sample_utf8_part) (lich) (Id.Lit_Other '\\') (n) ) } spids: [69] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_Number '$1'))})] action: [ (command.Pipeline children: [ (C {(printf)} {(DQ ($ Id.VSub_DollarName '$msg'))}) (C {(iconv)} {(-f)} {(utf-8)} {(-t)} {(DQ ($ Id.VSub_Number '$1'))}) ] negated: F ) ] spids: [81 92] ) ] else_action: [(C {(printf)} {(DQ ($ Id.VSub_DollarName '$msg'))})] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'set up basic repos' span_id:134))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:138) (Token id:Id.Lit_Chars val:'\t>foo &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\t>bar &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:142) (Token id: Id.Lit_Chars val: '\tgit config i18n.commitEncoding $test_encoding &&\n' span_id: 143 ) (Token id:Id.Lit_Chars val:'\tcommit_msg $test_encoding | git commit -F - &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\tgit add bar &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\tgit commit -m "add bar" &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\tgit config --unset i18n.commitEncoding\n' span_id:148) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'alias builtin format' span_id:155))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:159) (Token id: Id.Lit_Chars val: '\tgit log --pretty=oneline >expected &&\n' span_id: 160 ) (Token id:Id.Lit_Chars val:'\tgit config pretty.test-alias oneline &&\n' span_id:161) (Token id: Id.Lit_Chars val: '\tgit log --pretty=test-alias >actual &&\n' span_id: 162 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:163) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'alias masking builtin format' span_id:170))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:174) (Token id: Id.Lit_Chars val: '\tgit log --pretty=oneline >expected &&\n' span_id: 175 ) (Token id:Id.Lit_Chars val:'\tgit config pretty.oneline "%H" &&\n' span_id:176) (Token id:Id.Lit_Chars val:'\tgit log --pretty=oneline >actual &&\n' span_id:177) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:178) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'alias user-defined format' span_id:185))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:189) (Token id: Id.Lit_Chars val: '\tgit log --pretty="format:%h" >expected &&\n' span_id: 190 ) (Token id:Id.Lit_Chars val:'\tgit config pretty.test-alias "format:%h" &&\n' span_id:191) (Token id: Id.Lit_Chars val: '\tgit log --pretty=test-alias >actual &&\n' span_id: 192 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:193) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'alias user-defined tformat with %s (ISO8859-1 encoding)' span_id: 200 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:204) (Token id: Id.Lit_Chars val: '\tgit config i18n.logOutputEncoding $test_encoding &&\n' span_id: 205 ) (Token id:Id.Lit_Chars val:'\tgit log --oneline >expected-s &&\n' span_id:206) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%h %s" >actual-s &&\n' span_id: 207 ) (Token id:Id.Lit_Chars val:'\tgit config --unset i18n.logOutputEncoding &&\n' span_id:208) (Token id:Id.Lit_Chars val:'\ttest_cmp expected-s actual-s\n' span_id:209) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'alias user-defined tformat with %s (utf-8 encoding)' span_id: 216 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:220) (Token id:Id.Lit_Chars val:'\tgit log --oneline >expected-s &&\n' span_id:221) (Token id:Id.Lit_Chars val:'\tgit log --pretty="tformat:%h %s" >actual-s &&\n' span_id:222) (Token id:Id.Lit_Chars val:'\ttest_cmp expected-s actual-s\n' span_id:223) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'alias user-defined tformat' span_id:230))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:234) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%h" >expected &&\n' span_id: 235 ) (Token id:Id.Lit_Chars val:'\tgit config pretty.test-alias "tformat:%h" &&\n' span_id:236) (Token id: Id.Lit_Chars val: '\tgit log --pretty=test-alias >actual &&\n' span_id: 237 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:238) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'alias non-existent format' span_id:245))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:249) (Token id: Id.Lit_Chars val: '\tgit config pretty.test-alias format-that-will-never-exist &&\n' span_id: 250 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git log --pretty=test-alias\n' span_id:251) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'alias of an alias' span_id:258))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:262) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%h" >expected &&\n' span_id: 263 ) (Token id:Id.Lit_Chars val:'\tgit config pretty.test-foo "tformat:%h" &&\n' span_id:264) (Token id: Id.Lit_Chars val: '\tgit config pretty.test-bar test-foo &&\n' span_id: 265 ) (Token id: Id.Lit_Chars val: '\tgit log --pretty=test-bar >actual && test_cmp expected actual\n' span_id: 266 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'alias masking an alias' span_id:273))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:277) (Token id: Id.Lit_Chars val: '\tgit log --pretty=format:"Two %H" >expected &&\n' span_id: 278 ) (Token id:Id.Lit_Chars val:'\tgit config pretty.duplicate "format:One %H" &&\n' span_id:279) (Token id: Id.Lit_Chars val: '\tgit config --add pretty.duplicate "format:Two %H" &&\n' span_id: 280 ) (Token id:Id.Lit_Chars val:'\tgit log --pretty=duplicate >actual &&\n' span_id:281) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:282) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'alias loop' span_id:289))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:293) (Token id: Id.Lit_Chars val: '\tgit config pretty.test-foo test-bar &&\n' span_id: 294 ) (Token id:Id.Lit_Chars val:'\tgit config pretty.test-bar test-foo &&\n' span_id:295) (Token id: Id.Lit_Chars val: '\ttest_must_fail git log --pretty=test-foo\n' span_id: 296 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'NUL separation' span_id:303))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:307) (Token id: Id.Lit_Chars val: '\tprintf "add bar\\0$(commit_msg)" >expected &&\n' span_id: 308 ) (Token id:Id.Lit_Chars val:'\tgit log -z --pretty="format:%s" >actual &&\n' span_id:309) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:310) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'NUL termination' span_id:317))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:321) (Token id: Id.Lit_Chars val: '\tprintf "add bar\\0$(commit_msg)\\0" >expected &&\n' span_id: 322 ) (Token id:Id.Lit_Chars val:'\tgit log -z --pretty="tformat:%s" >actual &&\n' span_id:323) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:324) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'NUL separation with --stat' span_id:331))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:335) (Token id: Id.Lit_Chars val: '\tstat0_part=$(git diff --stat HEAD^ HEAD) &&\n' span_id: 336 ) (Token id: Id.Lit_Chars val: '\tstat1_part=$(git diff-tree --no-commit-id --stat --root HEAD^) &&\n' span_id: 337 ) (Token id: Id.Lit_Chars val: '\tprintf "add bar\\n$stat0_part\\n\\0$(commit_msg)\\n$stat1_part\\n" >expected &&\n' span_id: 338 ) (Token id:Id.Lit_Chars val:'\tgit log -z --stat --pretty="format:%s" >actual &&\n' span_id:339) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expected actual\n' span_id:340) ) } ) (C {(test_expect_failure)} {(SQ (Token id:Id.Lit_Chars val:'NUL termination with --stat' span_id:347))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:351) (Token id: Id.Lit_Chars val: '\tstat0_part=$(git diff --stat HEAD^ HEAD) &&\n' span_id: 352 ) (Token id: Id.Lit_Chars val: '\tstat1_part=$(git diff-tree --no-commit-id --stat --root HEAD^) &&\n' span_id: 353 ) (Token id: Id.Lit_Chars val: '\tprintf "add bar\\n$stat0_part\\n\\0$(commit_msg)\\n$stat1_part\\n0" >expected &&\n' span_id: 354 ) (Token id:Id.Lit_Chars val:'\tgit log -z --stat --pretty="tformat:%s" >actual &&\n' span_id:355) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expected actual\n' span_id:356) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup more commits' span_id:363))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:367) (Token id: Id.Lit_Chars val: '\ttest_commit "message one" one one message-one &&\n' span_id: 368 ) (Token id:Id.Lit_Chars val:'\ttest_commit "message two" two two message-two &&\n' span_id:369) (Token id: Id.Lit_Chars val: '\thead1=$(git rev-parse --verify --short HEAD~0) &&\n' span_id: 370 ) (Token id:Id.Lit_Chars val:'\thead2=$(git rev-parse --verify --short HEAD~1) &&\n' span_id:371) (Token id: Id.Lit_Chars val: '\thead3=$(git rev-parse --verify --short HEAD~2) &&\n' span_id: 372 ) (Token id:Id.Lit_Chars val:'\thead4=$(git rev-parse --verify --short HEAD~3)\n' span_id:373) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'left alignment formatting' span_id:380))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:384) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%<(40)%s" >actual &&\n' span_id: 385 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-EOF >expected &&\n' span_id:386) (Token id: Id.Lit_Chars val: '\tmessage two Z\n' span_id: 387 ) (Token id:Id.Lit_Chars val:'\tmessage one Z\n' span_id:388) (Token id: Id.Lit_Chars val: '\tadd bar Z\n' span_id: 389 ) (Token id:Id.Lit_Chars val:'\t$(commit_msg) Z\n' span_id:390) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:391) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:392) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'left alignment formatting. i18n.logOutputEncoding' span_id: 399 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:403) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%<(40)%s" >actual &&\n' span_id: 404 ) (Token id: Id.Lit_Chars val: '\tqz_to_tab_space <<-EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 405 ) (Token id:Id.Lit_Chars val:'\tmessage two Z\n' span_id:406) (Token id: Id.Lit_Chars val: '\tmessage one Z\n' span_id: 407 ) (Token id:Id.Lit_Chars val:'\tadd bar Z\n' span_id:408) (Token id:Id.Lit_Chars val:'\t$(commit_msg) Z\n' span_id:409) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:410) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:411) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'left alignment formatting at the nth column' span_id:418))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:422) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%h %<|(40)%s" >actual &&\n' span_id: 423 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-EOF >expected &&\n' span_id:424) (Token id: Id.Lit_Chars val: '\t$head1 message two Z\n' span_id: 425 ) (Token id:Id.Lit_Chars val:'\t$head2 message one Z\n' span_id:426) (Token id: Id.Lit_Chars val: '\t$head3 add bar Z\n' span_id: 427 ) (Token id:Id.Lit_Chars val:'\t$head4 $(commit_msg) Z\n' span_id:428) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:429) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:430) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'left alignment formatting at the nth column' span_id:437))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:441) (Token id: Id.Lit_Chars val: '\tCOLUMNS=50 git log --pretty="tformat:%h %<|(-10)%s" >actual &&\n' span_id: 442 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-EOF >expected &&\n' span_id:443) (Token id: Id.Lit_Chars val: '\t$head1 message two Z\n' span_id: 444 ) (Token id:Id.Lit_Chars val:'\t$head2 message one Z\n' span_id:445) (Token id: Id.Lit_Chars val: '\t$head3 add bar Z\n' span_id: 446 ) (Token id:Id.Lit_Chars val:'\t$head4 $(commit_msg) Z\n' span_id:447) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:448) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:449) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'left alignment formatting at the nth column. i18n.logOutputEncoding' span_id: 456 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:460) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%h %<|(40)%s" >actual &&\n' span_id: 461 ) (Token id: Id.Lit_Chars val: '\tqz_to_tab_space <<-EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 462 ) (Token id:Id.Lit_Chars val:'\t$head1 message two Z\n' span_id:463) (Token id: Id.Lit_Chars val: '\t$head2 message one Z\n' span_id: 464 ) (Token id:Id.Lit_Chars val:'\t$head3 add bar Z\n' span_id:465) (Token id:Id.Lit_Chars val:'\t$head4 $(commit_msg) Z\n' span_id:466) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:467) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:468) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'left alignment formatting with no padding' span_id:475))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:479) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%<(1)%s" >actual &&\n' span_id: 480 ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expected &&\n' span_id:481) (Token id:Id.Lit_Chars val:'\tmessage two\n' span_id:482) (Token id:Id.Lit_Chars val:'\tmessage one\n' span_id:483) (Token id:Id.Lit_Chars val:'\tadd bar\n' span_id:484) (Token id:Id.Lit_Chars val:'\t$(commit_msg)\n' span_id:485) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:486) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:487) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'left alignment formatting with no padding. i18n.logOutputEncoding' span_id: 494 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:498) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%<(1)%s" >actual &&\n' span_id: 499 ) (Token id: Id.Lit_Chars val: '\tcat <<-EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 500 ) (Token id:Id.Lit_Chars val:'\tmessage two\n' span_id:501) (Token id:Id.Lit_Chars val:'\tmessage one\n' span_id:502) (Token id:Id.Lit_Chars val:'\tadd bar\n' span_id:503) (Token id:Id.Lit_Chars val:'\t$(commit_msg)\n' span_id:504) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:505) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:506) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'left alignment formatting with trunc' span_id:513))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:517) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%<(10,trunc)%s" >actual &&\n' span_id: 518 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-\\EOF >expected &&\n' span_id:519) (Token id:Id.Lit_Chars val:'\tmessage ..\n' span_id:520) (Token id:Id.Lit_Chars val:'\tmessage ..\n' span_id:521) (Token id:Id.Lit_Chars val:'\tadd bar Z\n' span_id:522) (Token id:Id.Lit_Chars val:'\tinitial...\n' span_id:523) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:524) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:525) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'left alignment formatting with trunc. i18n.logOutputEncoding' span_id: 532 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:536) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%<(10,trunc)%s" >actual &&\n' span_id: 537 ) (Token id: Id.Lit_Chars val: '\tqz_to_tab_space <<-\\EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 538 ) (Token id:Id.Lit_Chars val:'\tmessage ..\n' span_id:539) (Token id:Id.Lit_Chars val:'\tmessage ..\n' span_id:540) (Token id:Id.Lit_Chars val:'\tadd bar Z\n' span_id:541) (Token id:Id.Lit_Chars val:'\tinitial...\n' span_id:542) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:543) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:544) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'left alignment formatting with ltrunc' span_id:551))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:555) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%<(10,ltrunc)%s" >actual &&\n' span_id: 556 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-EOF >expected &&\n' span_id:557) (Token id:Id.Lit_Chars val:'\t..sage two\n' span_id:558) (Token id:Id.Lit_Chars val:'\t..sage one\n' span_id:559) (Token id:Id.Lit_Chars val:'\tadd bar Z\n' span_id:560) (Token id:Id.Lit_Chars val:'\t..${sample_utf8_part}lich\n' span_id:561) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:562) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:563) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'left alignment formatting with ltrunc. i18n.logOutputEncoding' span_id: 570 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:574) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%<(10,ltrunc)%s" >actual &&\n' span_id: 575 ) (Token id: Id.Lit_Chars val: '\tqz_to_tab_space <<-EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 576 ) (Token id:Id.Lit_Chars val:'\t..sage two\n' span_id:577) (Token id:Id.Lit_Chars val:'\t..sage one\n' span_id:578) (Token id:Id.Lit_Chars val:'\tadd bar Z\n' span_id:579) (Token id:Id.Lit_Chars val:'\t..${sample_utf8_part}lich\n' span_id:580) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:581) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:582) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'left alignment formatting with mtrunc' span_id:589))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:593) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%<(10,mtrunc)%s" >actual &&\n' span_id: 594 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-\\EOF >expected &&\n' span_id:595) (Token id:Id.Lit_Chars val:'\tmess.. two\n' span_id:596) (Token id:Id.Lit_Chars val:'\tmess.. one\n' span_id:597) (Token id:Id.Lit_Chars val:'\tadd bar Z\n' span_id:598) (Token id:Id.Lit_Chars val:'\tinit..lich\n' span_id:599) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:600) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:601) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'left alignment formatting with mtrunc. i18n.logOutputEncoding' span_id: 608 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:612) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%<(10,mtrunc)%s" >actual &&\n' span_id: 613 ) (Token id: Id.Lit_Chars val: '\tqz_to_tab_space <<-\\EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 614 ) (Token id:Id.Lit_Chars val:'\tmess.. two\n' span_id:615) (Token id:Id.Lit_Chars val:'\tmess.. one\n' span_id:616) (Token id:Id.Lit_Chars val:'\tadd bar Z\n' span_id:617) (Token id:Id.Lit_Chars val:'\tinit..lich\n' span_id:618) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:619) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:620) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'right alignment formatting' span_id:627))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:631) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%>(40)%s" >actual &&\n' span_id: 632 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-EOF >expected &&\n' span_id:633) (Token id: Id.Lit_Chars val: '\tZ message two\n' span_id: 634 ) (Token id:Id.Lit_Chars val:'\tZ message one\n' span_id:635) (Token id: Id.Lit_Chars val: '\tZ add bar\n' span_id: 636 ) (Token id:Id.Lit_Chars val:'\tZ $(commit_msg)\n' span_id:637) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:638) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:639) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'right alignment formatting. i18n.logOutputEncoding' span_id: 646 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:650) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%>(40)%s" >actual &&\n' span_id: 651 ) (Token id: Id.Lit_Chars val: '\tqz_to_tab_space <<-EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 652 ) (Token id:Id.Lit_Chars val:'\tZ message two\n' span_id:653) (Token id: Id.Lit_Chars val: '\tZ message one\n' span_id: 654 ) (Token id:Id.Lit_Chars val:'\tZ add bar\n' span_id:655) (Token id:Id.Lit_Chars val:'\tZ $(commit_msg)\n' span_id:656) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:657) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:658) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'right alignment formatting at the nth column' span_id:665))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:669) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%h %>|(40)%s" >actual &&\n' span_id: 670 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-EOF >expected &&\n' span_id:671) (Token id: Id.Lit_Chars val: '\t$head1 message two\n' span_id: 672 ) (Token id:Id.Lit_Chars val:'\t$head2 message one\n' span_id:673) (Token id: Id.Lit_Chars val: '\t$head3 add bar\n' span_id: 674 ) (Token id:Id.Lit_Chars val:'\t$head4 $(commit_msg)\n' span_id:675) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:676) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:677) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'right alignment formatting at the nth column' span_id:684))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:688) (Token id: Id.Lit_Chars val: '\tCOLUMNS=50 git log --pretty="tformat:%h %>|(-10)%s" >actual &&\n' span_id: 689 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-EOF >expected &&\n' span_id:690) (Token id: Id.Lit_Chars val: '\t$head1 message two\n' span_id: 691 ) (Token id:Id.Lit_Chars val:'\t$head2 message one\n' span_id:692) (Token id: Id.Lit_Chars val: '\t$head3 add bar\n' span_id: 693 ) (Token id:Id.Lit_Chars val:'\t$head4 $(commit_msg)\n' span_id:694) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:695) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:696) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'right alignment formatting at the nth column. i18n.logOutputEncoding' span_id: 703 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:707) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%h %>|(40)%s" >actual &&\n' span_id: 708 ) (Token id: Id.Lit_Chars val: '\tqz_to_tab_space <<-EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 709 ) (Token id:Id.Lit_Chars val:'\t$head1 message two\n' span_id:710) (Token id: Id.Lit_Chars val: '\t$head2 message one\n' span_id: 711 ) (Token id:Id.Lit_Chars val:'\t$head3 add bar\n' span_id:712) (Token id:Id.Lit_Chars val:'\t$head4 $(commit_msg)\n' span_id:713) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:714) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:715) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'right alignment formatting at the nth column with --graph. i18n.logOutputEncoding' span_id: 728 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:732) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --graph --pretty="tformat:%h %>|(40)%s" >actual &&\n' span_id: 733 ) (Token id:Id.Lit_Chars val:'\ticonv -f utf-8 -t $test_encoding >expected <<-EOF &&\n' span_id:734) (Token id: Id.Lit_Chars val: '\t* $head1 message two\n' span_id: 735 ) (Token id:Id.Lit_Chars val:'\t* $head2 message one\n' span_id:736) (Token id: Id.Lit_Chars val: '\t* $head3 add bar\n' span_id: 737 ) (Token id:Id.Lit_Chars val:'\t* $head4 $(commit_msg)\n' span_id:738) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:739) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:740) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'right alignment formatting with no padding' span_id:747))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:751) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%>(1)%s" >actual &&\n' span_id: 752 ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expected &&\n' span_id:753) (Token id:Id.Lit_Chars val:'\tmessage two\n' span_id:754) (Token id:Id.Lit_Chars val:'\tmessage one\n' span_id:755) (Token id:Id.Lit_Chars val:'\tadd bar\n' span_id:756) (Token id:Id.Lit_Chars val:'\t$(commit_msg)\n' span_id:757) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:758) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:759) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'right alignment formatting with no padding and with --graph' span_id: 766 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:770) (Token id: Id.Lit_Chars val: '\tgit log --graph --pretty="tformat:%>(1)%s" >actual &&\n' span_id: 771 ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expected &&\n' span_id:772) (Token id:Id.Lit_Chars val:'\t* message two\n' span_id:773) (Token id:Id.Lit_Chars val:'\t* message one\n' span_id:774) (Token id:Id.Lit_Chars val:'\t* add bar\n' span_id:775) (Token id:Id.Lit_Chars val:'\t* $(commit_msg)\n' span_id:776) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:777) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:778) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'right alignment formatting with no padding. i18n.logOutputEncoding' span_id: 785 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:789) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%>(1)%s" >actual &&\n' span_id: 790 ) (Token id: Id.Lit_Chars val: '\tcat <<-EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 791 ) (Token id:Id.Lit_Chars val:'\tmessage two\n' span_id:792) (Token id:Id.Lit_Chars val:'\tmessage one\n' span_id:793) (Token id:Id.Lit_Chars val:'\tadd bar\n' span_id:794) (Token id:Id.Lit_Chars val:'\t$(commit_msg)\n' span_id:795) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:796) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:797) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'center alignment formatting' span_id:804))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:808) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%><(40)%s" >actual &&\n' span_id: 809 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-EOF >expected &&\n' span_id:810) (Token id: Id.Lit_Chars val: '\tZ message two Z\n' span_id: 811 ) (Token id:Id.Lit_Chars val:'\tZ message one Z\n' span_id:812) (Token id: Id.Lit_Chars val: '\tZ add bar Z\n' span_id: 813 ) (Token id:Id.Lit_Chars val:'\tZ $(commit_msg) Z\n' span_id:814) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:815) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:816) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'center alignment formatting. i18n.logOutputEncoding' span_id: 823 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:827) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%><(40)%s" >actual &&\n' span_id: 828 ) (Token id: Id.Lit_Chars val: '\tqz_to_tab_space <<-EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 829 ) (Token id:Id.Lit_Chars val:'\tZ message two Z\n' span_id:830) (Token id: Id.Lit_Chars val: '\tZ message one Z\n' span_id: 831 ) (Token id:Id.Lit_Chars val:'\tZ add bar Z\n' span_id:832) (Token id:Id.Lit_Chars val:'\tZ $(commit_msg) Z\n' span_id:833) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:834) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:835) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'center alignment formatting at the nth column' span_id:841))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:845) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%h %><|(40)%s" >actual &&\n' span_id: 846 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-EOF >expected &&\n' span_id:847) (Token id: Id.Lit_Chars val: '\t$head1 message two Z\n' span_id: 848 ) (Token id:Id.Lit_Chars val:'\t$head2 message one Z\n' span_id:849) (Token id: Id.Lit_Chars val: '\t$head3 add bar Z\n' span_id: 850 ) (Token id:Id.Lit_Chars val:'\t$head4 $(commit_msg) Z\n' span_id:851) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:852) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:853) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'center alignment formatting at the nth column' span_id:860))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:864) (Token id: Id.Lit_Chars val: '\tCOLUMNS=70 git log --pretty="tformat:%h %><|(-30)%s" >actual &&\n' span_id: 865 ) (Token id:Id.Lit_Chars val:'\tqz_to_tab_space <<-EOF >expected &&\n' span_id:866) (Token id: Id.Lit_Chars val: '\t$head1 message two Z\n' span_id: 867 ) (Token id:Id.Lit_Chars val:'\t$head2 message one Z\n' span_id:868) (Token id: Id.Lit_Chars val: '\t$head3 add bar Z\n' span_id: 869 ) (Token id:Id.Lit_Chars val:'\t$head4 $(commit_msg) Z\n' span_id:870) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:871) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:872) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'center alignment formatting at the nth column. i18n.logOutputEncoding' span_id: 879 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:883) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%h %><|(40)%s" >actual &&\n' span_id: 884 ) (Token id: Id.Lit_Chars val: '\tqz_to_tab_space <<-EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 885 ) (Token id:Id.Lit_Chars val:'\t$head1 message two Z\n' span_id:886) (Token id: Id.Lit_Chars val: '\t$head2 message one Z\n' span_id: 887 ) (Token id:Id.Lit_Chars val:'\t$head3 add bar Z\n' span_id:888) (Token id:Id.Lit_Chars val:'\t$head4 $(commit_msg) Z\n' span_id:889) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:890) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:891) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'center alignment formatting with no padding' span_id:898))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:902) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%><(1)%s" >actual &&\n' span_id: 903 ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expected &&\n' span_id:904) (Token id:Id.Lit_Chars val:'\tmessage two\n' span_id:905) (Token id:Id.Lit_Chars val:'\tmessage one\n' span_id:906) (Token id:Id.Lit_Chars val:'\tadd bar\n' span_id:907) (Token id:Id.Lit_Chars val:'\t$(commit_msg)\n' span_id:908) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:909) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:910) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:old_head1) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:921) command_list: (command.CommandList children: [(C {(git)} {(rev-parse)} {(--verify)} {(HEAD) (Id.Lit_TildeLike '~0')})] ) ) } spids: [920] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'center alignment formatting with no padding. i18n.logOutputEncoding' span_id: 935 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:939) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%><(1)%s" >actual &&\n' span_id: 940 ) (Token id: Id.Lit_Chars val: '\tcat <<-EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 941 ) (Token id:Id.Lit_Chars val:'\tmessage two\n' span_id:942) (Token id:Id.Lit_Chars val:'\tmessage one\n' span_id:943) (Token id:Id.Lit_Chars val:'\tadd bar\n' span_id:944) (Token id:Id.Lit_Chars val:'\t$(commit_msg)\n' span_id:945) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:946) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:947) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'left/right alignment formatting with stealing' span_id:954))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:958) (Token id: Id.Lit_Chars val: '\tgit commit --amend -m short --author "long long long <long@me.com>" &&\n' span_id: 959 ) (Token id: Id.Lit_Chars val: '\tgit log --pretty="tformat:%<(10,trunc)%s%>>(10,ltrunc)% an" >actual &&\n' span_id: 960 ) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >expected &&\n' span_id:961) (Token id:Id.Lit_Chars val:'\tshort long long long\n' span_id:962) (Token id:Id.Lit_Chars val:'\tmessage .. A U Thor\n' span_id:963) (Token id:Id.Lit_Chars val:'\tadd bar A U Thor\n' span_id:964) (Token id:Id.Lit_Chars val:'\tinitial... A U Thor\n' span_id:965) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:966) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:967) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'left/right alignment formatting with stealing. i18n.logOutputEncoding' span_id: 973 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:977) (Token id: Id.Lit_Chars val: '\tgit -c i18n.logOutputEncoding=$test_encoding log --pretty="tformat:%<(10,trunc)%s%>>(10,ltrunc)% an" >actual &&\n' span_id: 978 ) (Token id: Id.Lit_Chars val: '\tcat <<-\\EOF | iconv -f utf-8 -t $test_encoding >expected &&\n' span_id: 979 ) (Token id:Id.Lit_Chars val:'\tshort long long long\n' span_id:980) (Token id:Id.Lit_Chars val:'\tmessage .. A U Thor\n' span_id:981) (Token id:Id.Lit_Chars val:'\tadd bar A U Thor\n' span_id:982) (Token id:Id.Lit_Chars val:'\tinitial... A U Thor\n' span_id:983) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:984) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:985) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'strbuf_utf8_replace() not producing NUL' span_id:992))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:996) (Token id: Id.Lit_Chars val: '\tgit log --color --pretty="tformat:%<(10,trunc)%s%>>(10,ltrunc)%C(auto)%d" |\n' span_id: 997 ) (Token id:Id.Lit_Chars val:'\t\ttest_decode_color |\n' span_id:998) (Token id:Id.Lit_Chars val:'\t\tnul_to_q >actual &&\n' span_id:999) (Token id:Id.Lit_Chars val:'\t! grep Q actual\n' span_id:1000) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'ISO and ISO-strict date formats display the same values' span_id: 1010 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1014) (Token id:Id.Lit_Chars val:'\tgit log --format=%ai%n%ci |\n' span_id:1015) (Token id:Id.Lit_Chars val:'\tsed -e "s/ /T/; s/ //; s/..\\$/:&/" >expected &&\n' span_id:1016) (Token id: Id.Lit_Chars val: '\tgit log --format=%aI%n%cI >actual &&\n' span_id: 1017 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1018) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'set up log decoration tests' span_id:1028))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1032) (Token id: Id.Lit_Chars val: '\thead1=$(git rev-parse --verify HEAD~0) &&\n' span_id: 1033 ) (Token id:Id.Lit_Chars val:'\thead2=$(git rev-parse --verify HEAD~1)\n' span_id:1034) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'log decoration properly follows tag chain' span_id:1041))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1045) (Token id:Id.Lit_Chars val:'\tgit tag -a tag1 -m tag1 &&\n' span_id:1046) (Token id:Id.Lit_Chars val:'\tgit tag -a tag2 -m tag2 tag1 &&\n' span_id:1047) (Token id:Id.Lit_Chars val:'\tgit tag -d tag1 &&\n' span_id:1048) (Token id:Id.Lit_Chars val:'\tgit commit --amend -m shorter &&\n' span_id:1049) (Token id: Id.Lit_Chars val: '\tgit log --no-walk --tags --pretty="%H %d" --decorate=full >actual &&\n' span_id: 1050 ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expected &&\n' span_id:1051) (Token id:Id.Lit_Chars val:'\t$head1 (tag: refs/tags/tag2)\n' span_id:1052) (Token id:Id.Lit_Chars val:'\t$head2 (tag: refs/tags/message-one)\n' span_id:1053) (Token id: Id.Lit_Chars val: '\t$old_head1 (tag: refs/tags/message-two)\n' span_id: 1054 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1055) (Token id:Id.Lit_Chars val:'\tsort actual >actual1 &&\n' span_id:1056) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual1\n' span_id:1057) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'clean log decoration' span_id:1064))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1068) (Token id: Id.Lit_Chars val: '\tgit log --no-walk --tags --pretty="%H %D" --decorate=full >actual &&\n' span_id: 1069 ) (Token id:Id.Lit_Chars val:'\tcat >expected <<-EOF &&\n' span_id:1070) (Token id:Id.Lit_Chars val:'\t$head1 tag: refs/tags/tag2\n' span_id:1071) (Token id:Id.Lit_Chars val:'\t$head2 tag: refs/tags/message-one\n' span_id:1072) (Token id: Id.Lit_Chars val: '\t$old_head1 tag: refs/tags/message-two\n' span_id: 1073 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1074) (Token id:Id.Lit_Chars val:'\tsort actual >actual1 &&\n' span_id:1075) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual1\n' span_id:1076) ) } ) (C {(test_done)}) ] )