(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:'diff --dirstat tests' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:54))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:58) (Token id:Id.Lit_Chars val:'\tmkdir unchanged &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\tmkdir changed &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\tmkdir rearranged &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\tmkdir src &&\n' span_id:62) (Token id:Id.Lit_Chars val:'\tmkdir src/copy &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\tmkdir src/copy/unchanged &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\tmkdir src/copy/changed &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\tmkdir src/copy/rearranged &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\tmkdir src/move &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\tmkdir src/move/unchanged &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\tmkdir src/move/changed &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\tmkdir src/move/rearranged &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\tcat <<EOF >unchanged/text &&\n' span_id:71) (Token id:Id.Lit_Chars val:'unchanged line #0\n' span_id:72) (Token id:Id.Lit_Chars val:'unchanged line #1\n' span_id:73) (Token id:Id.Lit_Chars val:'unchanged line #2\n' span_id:74) (Token id:Id.Lit_Chars val:'unchanged line #3\n' span_id:75) (Token id:Id.Lit_Chars val:'unchanged line #4\n' span_id:76) (Token id:Id.Lit_Chars val:'unchanged line #5\n' span_id:77) (Token id:Id.Lit_Chars val:'unchanged line #6\n' span_id:78) (Token id:Id.Lit_Chars val:'unchanged line #7\n' span_id:79) (Token id:Id.Lit_Chars val:'unchanged line #8\n' span_id:80) (Token id:Id.Lit_Chars val:'unchanged line #9\n' span_id:81) (Token id:Id.Lit_Chars val:'EOF\n' span_id:82) (Token id:Id.Lit_Chars val:'\tcat <<EOF >changed/text &&\n' span_id:83) (Token id:Id.Lit_Chars val:'changed line #0\n' span_id:84) (Token id:Id.Lit_Chars val:'changed line #1\n' span_id:85) (Token id:Id.Lit_Chars val:'changed line #2\n' span_id:86) (Token id:Id.Lit_Chars val:'changed line #3\n' span_id:87) (Token id:Id.Lit_Chars val:'changed line #4\n' span_id:88) (Token id:Id.Lit_Chars val:'changed line #5\n' span_id:89) (Token id:Id.Lit_Chars val:'changed line #6\n' span_id:90) (Token id:Id.Lit_Chars val:'changed line #7\n' span_id:91) (Token id:Id.Lit_Chars val:'changed line #8\n' span_id:92) (Token id:Id.Lit_Chars val:'changed line #9\n' span_id:93) (Token id:Id.Lit_Chars val:'EOF\n' span_id:94) (Token id:Id.Lit_Chars val:'\tcat <<EOF >rearranged/text &&\n' span_id:95) (Token id:Id.Lit_Chars val:'rearranged line #0\n' span_id:96) (Token id:Id.Lit_Chars val:'rearranged line #1\n' span_id:97) (Token id:Id.Lit_Chars val:'rearranged line #2\n' span_id:98) (Token id:Id.Lit_Chars val:'rearranged line #3\n' span_id:99) (Token id:Id.Lit_Chars val:'rearranged line #4\n' span_id:100) (Token id:Id.Lit_Chars val:'rearranged line #5\n' span_id:101) (Token id:Id.Lit_Chars val:'rearranged line #6\n' span_id:102) (Token id:Id.Lit_Chars val:'rearranged line #7\n' span_id:103) (Token id:Id.Lit_Chars val:'rearranged line #8\n' span_id:104) (Token id:Id.Lit_Chars val:'rearranged line #9\n' span_id:105) (Token id:Id.Lit_Chars val:'EOF\n' span_id:106) (Token id: Id.Lit_Chars val: '\tcat <<EOF >src/copy/unchanged/text &&\n' span_id: 107 ) (Token id:Id.Lit_Chars val:'copy unchanged line #0\n' span_id:108) (Token id:Id.Lit_Chars val:'copy unchanged line #1\n' span_id:109) (Token id:Id.Lit_Chars val:'copy unchanged line #2\n' span_id:110) (Token id:Id.Lit_Chars val:'copy unchanged line #3\n' span_id:111) (Token id:Id.Lit_Chars val:'copy unchanged line #4\n' span_id:112) (Token id:Id.Lit_Chars val:'copy unchanged line #5\n' span_id:113) (Token id:Id.Lit_Chars val:'copy unchanged line #6\n' span_id:114) (Token id:Id.Lit_Chars val:'copy unchanged line #7\n' span_id:115) (Token id:Id.Lit_Chars val:'copy unchanged line #8\n' span_id:116) (Token id:Id.Lit_Chars val:'copy unchanged line #9\n' span_id:117) (Token id:Id.Lit_Chars val:'EOF\n' span_id:118) (Token id:Id.Lit_Chars val:'\tcat <<EOF >src/copy/changed/text &&\n' span_id:119) (Token id:Id.Lit_Chars val:'copy changed line #0\n' span_id:120) (Token id:Id.Lit_Chars val:'copy changed line #1\n' span_id:121) (Token id:Id.Lit_Chars val:'copy changed line #2\n' span_id:122) (Token id:Id.Lit_Chars val:'copy changed line #3\n' span_id:123) (Token id:Id.Lit_Chars val:'copy changed line #4\n' span_id:124) (Token id:Id.Lit_Chars val:'copy changed line #5\n' span_id:125) (Token id:Id.Lit_Chars val:'copy changed line #6\n' span_id:126) (Token id:Id.Lit_Chars val:'copy changed line #7\n' span_id:127) (Token id:Id.Lit_Chars val:'copy changed line #8\n' span_id:128) (Token id:Id.Lit_Chars val:'copy changed line #9\n' span_id:129) (Token id:Id.Lit_Chars val:'EOF\n' span_id:130) (Token id: Id.Lit_Chars val: '\tcat <<EOF >src/copy/rearranged/text &&\n' span_id: 131 ) (Token id:Id.Lit_Chars val:'copy rearranged line #0\n' span_id:132) (Token id:Id.Lit_Chars val:'copy rearranged line #1\n' span_id:133) (Token id:Id.Lit_Chars val:'copy rearranged line #2\n' span_id:134) (Token id:Id.Lit_Chars val:'copy rearranged line #3\n' span_id:135) (Token id:Id.Lit_Chars val:'copy rearranged line #4\n' span_id:136) (Token id:Id.Lit_Chars val:'copy rearranged line #5\n' span_id:137) (Token id:Id.Lit_Chars val:'copy rearranged line #6\n' span_id:138) (Token id:Id.Lit_Chars val:'copy rearranged line #7\n' span_id:139) (Token id:Id.Lit_Chars val:'copy rearranged line #8\n' span_id:140) (Token id:Id.Lit_Chars val:'copy rearranged line #9\n' span_id:141) (Token id:Id.Lit_Chars val:'EOF\n' span_id:142) (Token id: Id.Lit_Chars val: '\tcat <<EOF >src/move/unchanged/text &&\n' span_id: 143 ) (Token id:Id.Lit_Chars val:'move unchanged line #0\n' span_id:144) (Token id:Id.Lit_Chars val:'move unchanged line #1\n' span_id:145) (Token id:Id.Lit_Chars val:'move unchanged line #2\n' span_id:146) (Token id:Id.Lit_Chars val:'move unchanged line #3\n' span_id:147) (Token id:Id.Lit_Chars val:'move unchanged line #4\n' span_id:148) (Token id:Id.Lit_Chars val:'move unchanged line #5\n' span_id:149) (Token id:Id.Lit_Chars val:'move unchanged line #6\n' span_id:150) (Token id:Id.Lit_Chars val:'move unchanged line #7\n' span_id:151) (Token id:Id.Lit_Chars val:'move unchanged line #8\n' span_id:152) (Token id:Id.Lit_Chars val:'move unchanged line #9\n' span_id:153) (Token id:Id.Lit_Chars val:'EOF\n' span_id:154) (Token id:Id.Lit_Chars val:'\tcat <<EOF >src/move/changed/text &&\n' span_id:155) (Token id:Id.Lit_Chars val:'move changed line #0\n' span_id:156) (Token id:Id.Lit_Chars val:'move changed line #1\n' span_id:157) (Token id:Id.Lit_Chars val:'move changed line #2\n' span_id:158) (Token id:Id.Lit_Chars val:'move changed line #3\n' span_id:159) (Token id:Id.Lit_Chars val:'move changed line #4\n' span_id:160) (Token id:Id.Lit_Chars val:'move changed line #5\n' span_id:161) (Token id:Id.Lit_Chars val:'move changed line #6\n' span_id:162) (Token id:Id.Lit_Chars val:'move changed line #7\n' span_id:163) (Token id:Id.Lit_Chars val:'move changed line #8\n' span_id:164) (Token id:Id.Lit_Chars val:'move changed line #9\n' span_id:165) (Token id:Id.Lit_Chars val:'EOF\n' span_id:166) (Token id: Id.Lit_Chars val: '\tcat <<EOF >src/move/rearranged/text &&\n' span_id: 167 ) (Token id:Id.Lit_Chars val:'move rearranged line #0\n' span_id:168) (Token id:Id.Lit_Chars val:'move rearranged line #1\n' span_id:169) (Token id:Id.Lit_Chars val:'move rearranged line #2\n' span_id:170) (Token id:Id.Lit_Chars val:'move rearranged line #3\n' span_id:171) (Token id:Id.Lit_Chars val:'move rearranged line #4\n' span_id:172) (Token id:Id.Lit_Chars val:'move rearranged line #5\n' span_id:173) (Token id:Id.Lit_Chars val:'move rearranged line #6\n' span_id:174) (Token id:Id.Lit_Chars val:'move rearranged line #7\n' span_id:175) (Token id:Id.Lit_Chars val:'move rearranged line #8\n' span_id:176) (Token id:Id.Lit_Chars val:'move rearranged line #9\n' span_id:177) (Token id:Id.Lit_Chars val:'EOF\n' span_id:178) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:179) (Token id:Id.Lit_Chars val:'\tgit commit -m "initial" &&\n' span_id:180) (Token id:Id.Lit_Chars val:'\tmkdir dst &&\n' span_id:181) (Token id:Id.Lit_Chars val:'\tmkdir dst/copy &&\n' span_id:182) (Token id:Id.Lit_Chars val:'\tmkdir dst/copy/unchanged &&\n' span_id:183) (Token id:Id.Lit_Chars val:'\tmkdir dst/copy/changed &&\n' span_id:184) (Token id:Id.Lit_Chars val:'\tmkdir dst/copy/rearranged &&\n' span_id:185) (Token id:Id.Lit_Chars val:'\tmkdir dst/move &&\n' span_id:186) (Token id:Id.Lit_Chars val:'\tmkdir dst/move/unchanged &&\n' span_id:187) (Token id:Id.Lit_Chars val:'\tmkdir dst/move/changed &&\n' span_id:188) (Token id:Id.Lit_Chars val:'\tmkdir dst/move/rearranged &&\n' span_id:189) (Token id:Id.Lit_Chars val:'\tcat <<EOF >changed/text &&\n' span_id:190) (Token id:Id.Lit_Chars val:'CHANGED XXXXXXX line #0\n' span_id:191) (Token id:Id.Lit_Chars val:'changed line #1\n' span_id:192) (Token id:Id.Lit_Chars val:'changed line #2\n' span_id:193) (Token id:Id.Lit_Chars val:'changed line #3\n' span_id:194) (Token id:Id.Lit_Chars val:'changed line #4\n' span_id:195) (Token id:Id.Lit_Chars val:'changed line #5\n' span_id:196) (Token id:Id.Lit_Chars val:'changed line #6\n' span_id:197) (Token id:Id.Lit_Chars val:'changed line #7\n' span_id:198) (Token id:Id.Lit_Chars val:'changed line #8\n' span_id:199) (Token id:Id.Lit_Chars val:'changed line #9\n' span_id:200) (Token id:Id.Lit_Chars val:'EOF\n' span_id:201) (Token id:Id.Lit_Chars val:'\tcat <<EOF >rearranged/text &&\n' span_id:202) (Token id:Id.Lit_Chars val:'rearranged line #1\n' span_id:203) (Token id:Id.Lit_Chars val:'rearranged line #0\n' span_id:204) (Token id:Id.Lit_Chars val:'rearranged line #2\n' span_id:205) (Token id:Id.Lit_Chars val:'rearranged line #3\n' span_id:206) (Token id:Id.Lit_Chars val:'rearranged line #4\n' span_id:207) (Token id:Id.Lit_Chars val:'rearranged line #5\n' span_id:208) (Token id:Id.Lit_Chars val:'rearranged line #6\n' span_id:209) (Token id:Id.Lit_Chars val:'rearranged line #7\n' span_id:210) (Token id:Id.Lit_Chars val:'rearranged line #8\n' span_id:211) (Token id:Id.Lit_Chars val:'rearranged line #9\n' span_id:212) (Token id:Id.Lit_Chars val:'EOF\n' span_id:213) (Token id:Id.Lit_Chars val:'\tcat <<EOF >dst/copy/unchanged/text &&\n' span_id:214) (Token id:Id.Lit_Chars val:'copy unchanged line #0\n' span_id:215) (Token id:Id.Lit_Chars val:'copy unchanged line #1\n' span_id:216) (Token id:Id.Lit_Chars val:'copy unchanged line #2\n' span_id:217) (Token id:Id.Lit_Chars val:'copy unchanged line #3\n' span_id:218) (Token id:Id.Lit_Chars val:'copy unchanged line #4\n' span_id:219) (Token id:Id.Lit_Chars val:'copy unchanged line #5\n' span_id:220) (Token id:Id.Lit_Chars val:'copy unchanged line #6\n' span_id:221) (Token id:Id.Lit_Chars val:'copy unchanged line #7\n' span_id:222) (Token id:Id.Lit_Chars val:'copy unchanged line #8\n' span_id:223) (Token id:Id.Lit_Chars val:'copy unchanged line #9\n' span_id:224) (Token id:Id.Lit_Chars val:'EOF\n' span_id:225) (Token id:Id.Lit_Chars val:'\tcat <<EOF >dst/copy/changed/text &&\n' span_id:226) (Token id:Id.Lit_Chars val:'copy XXXCHANGED line #0\n' span_id:227) (Token id:Id.Lit_Chars val:'copy changed line #1\n' span_id:228) (Token id:Id.Lit_Chars val:'copy changed line #2\n' span_id:229) (Token id:Id.Lit_Chars val:'copy changed line #3\n' span_id:230) (Token id:Id.Lit_Chars val:'copy changed line #4\n' span_id:231) (Token id:Id.Lit_Chars val:'copy changed line #5\n' span_id:232) (Token id:Id.Lit_Chars val:'copy changed line #6\n' span_id:233) (Token id:Id.Lit_Chars val:'copy changed line #7\n' span_id:234) (Token id:Id.Lit_Chars val:'copy changed line #8\n' span_id:235) (Token id:Id.Lit_Chars val:'copy changed line #9\n' span_id:236) (Token id:Id.Lit_Chars val:'EOF\n' span_id:237) (Token id:Id.Lit_Chars val:'\tcat <<EOF >dst/copy/rearranged/text &&\n' span_id:238) (Token id:Id.Lit_Chars val:'copy rearranged line #1\n' span_id:239) (Token id:Id.Lit_Chars val:'copy rearranged line #0\n' span_id:240) (Token id:Id.Lit_Chars val:'copy rearranged line #2\n' span_id:241) (Token id:Id.Lit_Chars val:'copy rearranged line #3\n' span_id:242) (Token id:Id.Lit_Chars val:'copy rearranged line #4\n' span_id:243) (Token id:Id.Lit_Chars val:'copy rearranged line #5\n' span_id:244) (Token id:Id.Lit_Chars val:'copy rearranged line #6\n' span_id:245) (Token id:Id.Lit_Chars val:'copy rearranged line #7\n' span_id:246) (Token id:Id.Lit_Chars val:'copy rearranged line #8\n' span_id:247) (Token id:Id.Lit_Chars val:'copy rearranged line #9\n' span_id:248) (Token id:Id.Lit_Chars val:'EOF\n' span_id:249) (Token id:Id.Lit_Chars val:'\tcat <<EOF >dst/move/unchanged/text &&\n' span_id:250) (Token id:Id.Lit_Chars val:'move unchanged line #0\n' span_id:251) (Token id:Id.Lit_Chars val:'move unchanged line #1\n' span_id:252) (Token id:Id.Lit_Chars val:'move unchanged line #2\n' span_id:253) (Token id:Id.Lit_Chars val:'move unchanged line #3\n' span_id:254) (Token id:Id.Lit_Chars val:'move unchanged line #4\n' span_id:255) (Token id:Id.Lit_Chars val:'move unchanged line #5\n' span_id:256) (Token id:Id.Lit_Chars val:'move unchanged line #6\n' span_id:257) (Token id:Id.Lit_Chars val:'move unchanged line #7\n' span_id:258) (Token id:Id.Lit_Chars val:'move unchanged line #8\n' span_id:259) (Token id:Id.Lit_Chars val:'move unchanged line #9\n' span_id:260) (Token id:Id.Lit_Chars val:'EOF\n' span_id:261) (Token id:Id.Lit_Chars val:'\tcat <<EOF >dst/move/changed/text &&\n' span_id:262) (Token id:Id.Lit_Chars val:'move XXXCHANGED line #0\n' span_id:263) (Token id:Id.Lit_Chars val:'move changed line #1\n' span_id:264) (Token id:Id.Lit_Chars val:'move changed line #2\n' span_id:265) (Token id:Id.Lit_Chars val:'move changed line #3\n' span_id:266) (Token id:Id.Lit_Chars val:'move changed line #4\n' span_id:267) (Token id:Id.Lit_Chars val:'move changed line #5\n' span_id:268) (Token id:Id.Lit_Chars val:'move changed line #6\n' span_id:269) (Token id:Id.Lit_Chars val:'move changed line #7\n' span_id:270) (Token id:Id.Lit_Chars val:'move changed line #8\n' span_id:271) (Token id:Id.Lit_Chars val:'move changed line #9\n' span_id:272) (Token id:Id.Lit_Chars val:'EOF\n' span_id:273) (Token id:Id.Lit_Chars val:'\tcat <<EOF >dst/move/rearranged/text &&\n' span_id:274) (Token id:Id.Lit_Chars val:'move rearranged line #1\n' span_id:275) (Token id:Id.Lit_Chars val:'move rearranged line #0\n' span_id:276) (Token id:Id.Lit_Chars val:'move rearranged line #2\n' span_id:277) (Token id:Id.Lit_Chars val:'move rearranged line #3\n' span_id:278) (Token id:Id.Lit_Chars val:'move rearranged line #4\n' span_id:279) (Token id:Id.Lit_Chars val:'move rearranged line #5\n' span_id:280) (Token id:Id.Lit_Chars val:'move rearranged line #6\n' span_id:281) (Token id:Id.Lit_Chars val:'move rearranged line #7\n' span_id:282) (Token id:Id.Lit_Chars val:'move rearranged line #8\n' span_id:283) (Token id:Id.Lit_Chars val:'move rearranged line #9\n' span_id:284) (Token id:Id.Lit_Chars val:'EOF\n' span_id:285) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:286) (Token id:Id.Lit_Chars val:'\tgit rm -r src/move/unchanged &&\n' span_id:287) (Token id:Id.Lit_Chars val:'\tgit rm -r src/move/changed &&\n' span_id:288) (Token id:Id.Lit_Chars val:'\tgit rm -r src/move/rearranged &&\n' span_id:289) (Token id:Id.Lit_Chars val:'\tgit commit -m "changes" &&\n' span_id:290) (Token id:Id.Lit_Chars val:'\tgit config diff.renames false\n' span_id:291) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:297) fd: -1 here_begin: {(EOF)} here_end_span_id: 315 stdin_parts: [ ('1\t1\tchanged/text\n') ('10\t0\tdst/copy/changed/text\n') ('10\t0\tdst/copy/rearranged/text\n') ('10\t0\tdst/copy/unchanged/text\n') ('10\t0\tdst/move/changed/text\n') ('10\t0\tdst/move/rearranged/text\n') ('10\t0\tdst/move/unchanged/text\n') ('1\t1\trearranged/text\n') ('0\t10\tsrc/move/changed/text\n') ('0\t10\tsrc/move/rearranged/text\n') ('0\t10\tsrc/move/unchanged/text\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:300) fd: -1 arg_word: {(expect_diff_stat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:319) fd: -1 here_begin: {(EOF)} here_end_span_id: 334 stdin_parts: [ ('1\t1\tchanged/text\n') ('10\t0\tdst/copy/changed/text\n') ('10\t0\tdst/copy/rearranged/text\n') ('10\t0\tdst/copy/unchanged/text\n') ('1\t1\t{src => dst}/move/changed/text\n') ('1\t1\t{src => dst}/move/rearranged/text\n') ('0\t0\t{src => dst}/move/unchanged/text\n') ('1\t1\trearranged/text\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:322) fd: -1 arg_word: {(expect_diff_stat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:338) fd: -1 here_begin: {(EOF)} here_end_span_id: 353 stdin_parts: [ ('1\t1\tchanged/text\n') ('1\t1\t{src => dst}/copy/changed/text\n') ('1\t1\t{src => dst}/copy/rearranged/text\n') ('0\t0\t{src => dst}/copy/unchanged/text\n') ('1\t1\t{src => dst}/move/changed/text\n') ('1\t1\t{src => dst}/move/rearranged/text\n') ('0\t0\t{src => dst}/move/unchanged/text\n') ('1\t1\trearranged/text\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:341) fd: -1 arg_word: {(expect_diff_stat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'sanity check setup (--numstat)' span_id:358))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:362) (Token id: Id.Lit_Chars val: '\tgit diff --numstat HEAD^..HEAD >actual_diff_stat &&\n' span_id: 363 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_stat actual_diff_stat &&\n' span_id:364) (Token id: Id.Lit_Chars val: '\tgit diff --numstat -M HEAD^..HEAD >actual_diff_stat_M &&\n' span_id: 365 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_stat_M actual_diff_stat_M &&\n' span_id:366) (Token id: Id.Lit_Chars val: '\tgit diff --numstat -C -C HEAD^..HEAD >actual_diff_stat_CC &&\n' span_id: 367 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_stat_CC actual_diff_stat_CC\n' span_id:368) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:377) fd: -1 here_begin: {(EOF)} here_end_span_id: 393 stdin_parts: [ (' 10.8% dst/copy/changed/\n') (' 10.8% dst/copy/rearranged/\n') (' 10.8% dst/copy/unchanged/\n') (' 10.8% dst/move/changed/\n') (' 10.8% dst/move/rearranged/\n') (' 10.8% dst/move/unchanged/\n') (' 10.8% src/move/changed/\n') (' 10.8% src/move/rearranged/\n') (' 10.8% src/move/unchanged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:380) fd: -1 arg_word: {(expect_diff_dirstat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:400) fd: -1 here_begin: {(EOF)} here_end_span_id: 412 stdin_parts: [ (' 5.8% changed/\n') (' 29.3% dst/copy/changed/\n') (' 29.3% dst/copy/rearranged/\n') (' 29.3% dst/copy/unchanged/\n') (' 5.8% dst/move/changed/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:403) fd: -1 arg_word: {(expect_diff_dirstat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:419) fd: -1 here_begin: {(EOF)} here_end_span_id: 429 stdin_parts: [ (' 32.6% changed/\n') (' 32.6% dst/copy/changed/\n') (' 32.6% dst/move/changed/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:422) fd: -1 arg_word: {(expect_diff_dirstat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'various ways to misspell --dirstat' span_id:434))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:438) (Token id: Id.Lit_Chars val: '\ttest_must_fail git show --dirstat10 &&\n' span_id: 439 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git show --dirstat10,files &&\n' span_id:440) (Token id:Id.Lit_Chars val:'\ttest_must_fail git show -X=20 &&\n' span_id:441) (Token id:Id.Lit_Chars val:'\ttest_must_fail git show -X=20,cumulative\n' span_id:442) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'vanilla --dirstat' span_id:449))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:453) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 454 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:455) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 456 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:457) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 458 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:459) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'vanilla -X' span_id:466))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:470) (Token id: Id.Lit_Chars val: '\tgit diff -X HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 471 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:472) (Token id: Id.Lit_Chars val: '\tgit diff -X -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 473 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:474) (Token id: Id.Lit_Chars val: '\tgit diff -X -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 475 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:476) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'explicit defaults: --dirstat=changes,noncumulative,3' span_id: 483 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:487) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 488 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:489) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 490 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:491) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 492 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:493) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'explicit defaults: -Xchanges,noncumulative,3' span_id:500))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:504) (Token id: Id.Lit_Chars val: '\tgit diff -Xchanges,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 505 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:506) (Token id: Id.Lit_Chars val: '\tgit diff -Xchanges,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 507 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:508) (Token id: Id.Lit_Chars val: '\tgit diff -Xchanges,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 509 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:510) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'later options override earlier options:' span_id:517))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:521) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,10,cumulative,changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 522 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:523) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,10,cumulative,changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 524 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:525) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,10,cumulative,changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 526 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC &&\n' span_id: 527 ) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 528 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:529) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 530 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:531) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 532 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:533) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'non-defaults in config overridden by explicit defaults on command line' span_id: 540 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:544) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 545 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:546) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 547 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:548) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 549 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:550) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:556) fd: -1 here_begin: {(EOF)} here_end_span_id: 574 stdin_parts: [ (' 2.1% changed/\n') (' 10.8% dst/copy/changed/\n') (' 10.8% dst/copy/rearranged/\n') (' 10.8% dst/copy/unchanged/\n') (' 10.8% dst/move/changed/\n') (' 10.8% dst/move/rearranged/\n') (' 10.8% dst/move/unchanged/\n') (' 0.0% rearranged/\n') (' 10.8% src/move/changed/\n') (' 10.8% src/move/rearranged/\n') (' 10.8% src/move/unchanged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:559) fd: -1 arg_word: {(expect_diff_dirstat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:578) fd: -1 here_begin: {(EOF)} here_end_span_id: 592 stdin_parts: [ (' 5.8% changed/\n') (' 29.3% dst/copy/changed/\n') (' 29.3% dst/copy/rearranged/\n') (' 29.3% dst/copy/unchanged/\n') (' 5.8% dst/move/changed/\n') (' 0.1% dst/move/rearranged/\n') (' 0.1% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:581) fd: -1 arg_word: {(expect_diff_dirstat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:596) fd: -1 here_begin: {(EOF)} here_end_span_id: 609 stdin_parts: [ (' 32.6% changed/\n') (' 32.6% dst/copy/changed/\n') (' 0.6% dst/copy/rearranged/\n') (' 32.6% dst/move/changed/\n') (' 0.6% dst/move/rearranged/\n') (' 0.6% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:599) fd: -1 arg_word: {(expect_diff_dirstat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=0' span_id:614))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:618) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=0 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 619 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:620) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=0 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 621 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:622) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 623 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:624) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:-X0 span_id:631))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:635) (Token id: Id.Lit_Chars val: '\tgit diff -X0 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 636 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:637) (Token id: Id.Lit_Chars val: '\tgit diff -X0 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 638 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:639) (Token id: Id.Lit_Chars val: '\tgit diff -X0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 640 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:641) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=0' span_id:648))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:652) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0 diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 653 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:654) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0 diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 655 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:656) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0 diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 657 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:658) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:664) fd: -1 here_begin: {(EOF)} here_end_span_id: 686 stdin_parts: [ (' 2.1% changed/\n') (' 10.8% dst/copy/changed/\n') (' 10.8% dst/copy/rearranged/\n') (' 10.8% dst/copy/unchanged/\n') (' 32.5% dst/copy/\n') (' 10.8% dst/move/changed/\n') (' 10.8% dst/move/rearranged/\n') (' 10.8% dst/move/unchanged/\n') (' 32.5% dst/move/\n') (' 65.1% dst/\n') (' 0.0% rearranged/\n') (' 10.8% src/move/changed/\n') (' 10.8% src/move/rearranged/\n') (' 10.8% src/move/unchanged/\n') (' 32.5% src/move/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:667) fd: -1 arg_word: {(expect_diff_dirstat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:690) fd: -1 here_begin: {(EOF)} here_end_span_id: 707 stdin_parts: [ (' 5.8% changed/\n') (' 29.3% dst/copy/changed/\n') (' 29.3% dst/copy/rearranged/\n') (' 29.3% dst/copy/unchanged/\n') (' 88.0% dst/copy/\n') (' 5.8% dst/move/changed/\n') (' 0.1% dst/move/rearranged/\n') (' 5.9% dst/move/\n') (' 94.0% dst/\n') (' 0.1% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:693) fd: -1 arg_word: {(expect_diff_dirstat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:711) fd: -1 here_begin: {(EOF)} here_end_span_id: 727 stdin_parts: [ (' 32.6% changed/\n') (' 32.6% dst/copy/changed/\n') (' 0.6% dst/copy/rearranged/\n') (' 33.3% dst/copy/\n') (' 32.6% dst/move/changed/\n') (' 0.6% dst/move/rearranged/\n') (' 33.3% dst/move/\n') (' 66.6% dst/\n') (' 0.6% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:714) fd: -1 arg_word: {(expect_diff_dirstat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=0 --cumulative' span_id:732))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:736) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=0 --cumulative HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 737 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:738) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=0 --cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 739 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:740) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=0 --cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 741 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:742) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=0,cumulative' span_id:749))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:753) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=0,cumulative HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 754 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:755) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=0,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 756 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:757) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=0,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 758 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:759) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'-X0,cumulative' span_id:766))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:770) (Token id: Id.Lit_Chars val: '\tgit diff -X0,cumulative HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 771 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:772) (Token id: Id.Lit_Chars val: '\tgit diff -X0,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 773 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:774) (Token id: Id.Lit_Chars val: '\tgit diff -X0,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 775 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:776) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=0,cumulative' span_id:783))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:787) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0,cumulative diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 788 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:789) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0,cumulative diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 790 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:791) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0,cumulative diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 792 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:793) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=0 & --dirstat=cumulative' span_id:800))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:804) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0 diff --dirstat=cumulative HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 805 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:806) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0 diff --dirstat=cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 807 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:808) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0 diff --dirstat=cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 809 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:810) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:816) fd: -1 here_begin: {(EOF)} here_end_span_id: 834 stdin_parts: [ (' 9.0% changed/\n') (' 9.0% dst/copy/changed/\n') (' 9.0% dst/copy/rearranged/\n') (' 9.0% dst/copy/unchanged/\n') (' 9.0% dst/move/changed/\n') (' 9.0% dst/move/rearranged/\n') (' 9.0% dst/move/unchanged/\n') (' 9.0% rearranged/\n') (' 9.0% src/move/changed/\n') (' 9.0% src/move/rearranged/\n') (' 9.0% src/move/unchanged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:819) fd: -1 arg_word: {(expect_diff_dirstat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:838) fd: -1 here_begin: {(EOF)} here_end_span_id: 852 stdin_parts: [ (' 14.2% changed/\n') (' 14.2% dst/copy/changed/\n') (' 14.2% dst/copy/rearranged/\n') (' 14.2% dst/copy/unchanged/\n') (' 14.2% dst/move/changed/\n') (' 14.2% dst/move/rearranged/\n') (' 14.2% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:841) fd: -1 arg_word: {(expect_diff_dirstat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:856) fd: -1 here_begin: {(EOF)} here_end_span_id: 869 stdin_parts: [ (' 16.6% changed/\n') (' 16.6% dst/copy/changed/\n') (' 16.6% dst/copy/rearranged/\n') (' 16.6% dst/move/changed/\n') (' 16.6% dst/move/rearranged/\n') (' 16.6% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:859) fd: -1 arg_word: {(expect_diff_dirstat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:--dirstat-by-file span_id:874))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:878) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat-by-file HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 879 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:880) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat-by-file -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 881 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:882) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat-by-file -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 883 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:884) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=files' span_id:891))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:895) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 896 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:897) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 898 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:899) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 900 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:901) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=files' span_id:908))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:912) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 913 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:914) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 915 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:916) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 917 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:918) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:924) fd: -1 here_begin: {(EOF)} here_end_span_id: 934 stdin_parts: [(' 27.2% dst/copy/\n') (' 27.2% dst/move/\n') (' 27.2% src/move/\n')] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:927) fd: -1 arg_word: {(expect_diff_dirstat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:938) fd: -1 here_begin: {(EOF)} here_end_span_id: 952 stdin_parts: [ (' 14.2% changed/\n') (' 14.2% dst/copy/changed/\n') (' 14.2% dst/copy/rearranged/\n') (' 14.2% dst/copy/unchanged/\n') (' 14.2% dst/move/changed/\n') (' 14.2% dst/move/rearranged/\n') (' 14.2% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:941) fd: -1 arg_word: {(expect_diff_dirstat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:956) fd: -1 here_begin: {(EOF)} here_end_span_id: 969 stdin_parts: [ (' 16.6% changed/\n') (' 16.6% dst/copy/changed/\n') (' 16.6% dst/copy/rearranged/\n') (' 16.6% dst/move/changed/\n') (' 16.6% dst/move/rearranged/\n') (' 16.6% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:959) fd: -1 arg_word: {(expect_diff_dirstat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat-by-file=10' span_id:974))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:978) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat-by-file=10 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 979 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:980) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat-by-file=10 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 981 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:982) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat-by-file=10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 983 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:984) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=files,10' span_id:991))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:995) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,10 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 996 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:997) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,10 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 998 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id:999) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1000 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1001) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=10,files' span_id:1008))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1012) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=10,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1013 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1014) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=10,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1015 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1016 ) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=10,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1017 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1018) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1024) fd: -1 here_begin: {(EOF)} here_end_span_id: 1046 stdin_parts: [ (' 9.0% changed/\n') (' 9.0% dst/copy/changed/\n') (' 9.0% dst/copy/rearranged/\n') (' 9.0% dst/copy/unchanged/\n') (' 27.2% dst/copy/\n') (' 9.0% dst/move/changed/\n') (' 9.0% dst/move/rearranged/\n') (' 9.0% dst/move/unchanged/\n') (' 27.2% dst/move/\n') (' 54.5% dst/\n') (' 9.0% rearranged/\n') (' 9.0% src/move/changed/\n') (' 9.0% src/move/rearranged/\n') (' 9.0% src/move/unchanged/\n') (' 27.2% src/move/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1027) fd: -1 arg_word: {(expect_diff_dirstat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1050) fd: -1 here_begin: {(EOF)} here_end_span_id: 1067 stdin_parts: [ (' 14.2% changed/\n') (' 14.2% dst/copy/changed/\n') (' 14.2% dst/copy/rearranged/\n') (' 14.2% dst/copy/unchanged/\n') (' 42.8% dst/copy/\n') (' 14.2% dst/move/changed/\n') (' 14.2% dst/move/rearranged/\n') (' 28.5% dst/move/\n') (' 71.4% dst/\n') (' 14.2% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1053) fd: -1 arg_word: {(expect_diff_dirstat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1071) fd: -1 here_begin: {(EOF)} here_end_span_id: 1087 stdin_parts: [ (' 16.6% changed/\n') (' 16.6% dst/copy/changed/\n') (' 16.6% dst/copy/rearranged/\n') (' 33.3% dst/copy/\n') (' 16.6% dst/move/changed/\n') (' 16.6% dst/move/rearranged/\n') (' 33.3% dst/move/\n') (' 66.6% dst/\n') (' 16.6% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1074) fd: -1 arg_word: {(expect_diff_dirstat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat-by-file --cumulative' span_id:1092))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1096) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat-by-file --cumulative HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1097 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1098) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat-by-file --cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1099 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1100 ) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat-by-file --cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1101 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1102) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=files,cumulative' span_id:1109))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1113) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1114 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1115) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1116 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1117 ) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1118 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1119) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=cumulative,files' span_id:1126))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1130) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1131 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1132) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1133 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1134 ) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1135 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1136) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1142) fd: -1 here_begin: {(EOF)} here_end_span_id: 1153 stdin_parts: [ (' 27.2% dst/copy/\n') (' 27.2% dst/move/\n') (' 54.5% dst/\n') (' 27.2% src/move/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1145) fd: -1 arg_word: {(expect_diff_dirstat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1157) fd: -1 here_begin: {(EOF)} here_end_span_id: 1174 stdin_parts: [ (' 14.2% changed/\n') (' 14.2% dst/copy/changed/\n') (' 14.2% dst/copy/rearranged/\n') (' 14.2% dst/copy/unchanged/\n') (' 42.8% dst/copy/\n') (' 14.2% dst/move/changed/\n') (' 14.2% dst/move/rearranged/\n') (' 28.5% dst/move/\n') (' 71.4% dst/\n') (' 14.2% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1160) fd: -1 arg_word: {(expect_diff_dirstat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1178) fd: -1 here_begin: {(EOF)} here_end_span_id: 1194 stdin_parts: [ (' 16.6% changed/\n') (' 16.6% dst/copy/changed/\n') (' 16.6% dst/copy/rearranged/\n') (' 33.3% dst/copy/\n') (' 16.6% dst/move/changed/\n') (' 16.6% dst/move/rearranged/\n') (' 33.3% dst/move/\n') (' 66.6% dst/\n') (' 16.6% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1181) fd: -1 arg_word: {(expect_diff_dirstat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=files,cumulative,10' span_id:1199))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1203) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,10 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1204 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1205) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,10 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1206 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1207 ) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1208 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1209) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=10,cumulative,files' span_id:1216))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1220) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=10,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1221 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1222) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=10,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1223 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1224 ) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=10,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1225 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1226) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1232) fd: -1 here_begin: {(EOF)} here_end_span_id: 1243 stdin_parts: [ (' 27.2% dst/copy/\n') (' 27.2% dst/move/\n') (' 54.5% dst/\n') (' 27.2% src/move/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1235) fd: -1 arg_word: {(expect_diff_dirstat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1247) fd: -1 here_begin: {(EOF)} here_end_span_id: 1257 stdin_parts: [(' 42.8% dst/copy/\n') (' 28.5% dst/move/\n') (' 71.4% dst/\n')] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1250) fd: -1 arg_word: {(expect_diff_dirstat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1261) fd: -1 here_begin: {(EOF)} here_end_span_id: 1271 stdin_parts: [(' 33.3% dst/copy/\n') (' 33.3% dst/move/\n') (' 66.6% dst/\n')] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1264) fd: -1 arg_word: {(expect_diff_dirstat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=files,cumulative,16.7' span_id:1276))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1280) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,16.7 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1281 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1282) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,16.7 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1283 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1284 ) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,16.7 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1285 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1286) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=16.7,cumulative,files' span_id:1293))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1297) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=16.7,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1298 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1299) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=16.7,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1300 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1301 ) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=16.7,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1302 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1303) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=16.70,cumulative,files' span_id:1310))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1314) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=16.70,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1315 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1316) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=16.70,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1317 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1318 ) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=16.70,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1319 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1320) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=files,cumulative,27.2' span_id:1327))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1331) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,27.2 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1332 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1333) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,27.2 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1334 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1335 ) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,27.2 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1336 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1337) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=files,cumulative,27.09' span_id:1344))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1348) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,27.09 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1349 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1350) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,27.09 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1351 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1352 ) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=files,cumulative,27.09 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1353 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1354) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1360) fd: -1 here_begin: {(EOF)} here_end_span_id: 1376 stdin_parts: [ (' 10.6% dst/copy/changed/\n') (' 10.6% dst/copy/rearranged/\n') (' 10.6% dst/copy/unchanged/\n') (' 10.6% dst/move/changed/\n') (' 10.6% dst/move/rearranged/\n') (' 10.6% dst/move/unchanged/\n') (' 10.6% src/move/changed/\n') (' 10.6% src/move/rearranged/\n') (' 10.6% src/move/unchanged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1363) fd: -1 arg_word: {(expect_diff_dirstat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1380) fd: -1 here_begin: {(EOF)} here_end_span_id: 1394 stdin_parts: [ (' 5.2% changed/\n') (' 26.3% dst/copy/changed/\n') (' 26.3% dst/copy/rearranged/\n') (' 26.3% dst/copy/unchanged/\n') (' 5.2% dst/move/changed/\n') (' 5.2% dst/move/rearranged/\n') (' 5.2% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1383) fd: -1 arg_word: {(expect_diff_dirstat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1398) fd: -1 here_begin: {(EOF)} here_end_span_id: 1411 stdin_parts: [ (' 16.6% changed/\n') (' 16.6% dst/copy/changed/\n') (' 16.6% dst/copy/rearranged/\n') (' 16.6% dst/move/changed/\n') (' 16.6% dst/move/rearranged/\n') (' 16.6% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1401) fd: -1 arg_word: {(expect_diff_dirstat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=lines' span_id:1416))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1420) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=lines HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1421 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1422) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=lines -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1423 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1424 ) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=lines -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1425 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1426) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=lines' span_id:1433))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1437) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1438 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1439) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1440 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1441 ) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1442 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1443) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1449) fd: -1 here_begin: {(EOF)} here_end_span_id: 1467 stdin_parts: [ (' 2.1% changed/\n') (' 10.6% dst/copy/changed/\n') (' 10.6% dst/copy/rearranged/\n') (' 10.6% dst/copy/unchanged/\n') (' 10.6% dst/move/changed/\n') (' 10.6% dst/move/rearranged/\n') (' 10.6% dst/move/unchanged/\n') (' 2.1% rearranged/\n') (' 10.6% src/move/changed/\n') (' 10.6% src/move/rearranged/\n') (' 10.6% src/move/unchanged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1452) fd: -1 arg_word: {(expect_diff_dirstat)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1471) fd: -1 here_begin: {(EOF)} here_end_span_id: 1485 stdin_parts: [ (' 5.2% changed/\n') (' 26.3% dst/copy/changed/\n') (' 26.3% dst/copy/rearranged/\n') (' 26.3% dst/copy/unchanged/\n') (' 5.2% dst/move/changed/\n') (' 5.2% dst/move/rearranged/\n') (' 5.2% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1474) fd: -1 arg_word: {(expect_diff_dirstat_M)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1489) fd: -1 here_begin: {(EOF)} here_end_span_id: 1502 stdin_parts: [ (' 16.6% changed/\n') (' 16.6% dst/copy/changed/\n') (' 16.6% dst/copy/rearranged/\n') (' 16.6% dst/move/changed/\n') (' 16.6% dst/move/rearranged/\n') (' 16.6% rearranged/\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1492) fd: -1 arg_word: {(expect_diff_dirstat_CC)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--dirstat=lines,0' span_id:1507))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1511) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=lines,0 HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1512 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1513) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=lines,0 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1514 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1515 ) (Token id: Id.Lit_Chars val: '\tgit diff --dirstat=lines,0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1516 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1517) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff.dirstat=0,lines' span_id:1524))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1528) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0,lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n' span_id: 1529 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id:1530) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0,lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n' span_id: 1531 ) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1532 ) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=0,lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n' span_id: 1533 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n' span_id:1534) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--dirstat=future_param,lines,0 should fail loudly' span_id: 1541 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1545) (Token id: Id.Lit_Chars val: '\ttest_must_fail git diff --dirstat=future_param,lines,0 HEAD^..HEAD >actual_diff_dirstat 2>actual_error &&\n' span_id: 1546 ) (Token id:Id.Lit_Chars val:'\ttest_debug "cat actual_error" &&\n' span_id:1547) (Token id: Id.Lit_Chars val: '\ttest_cmp /dev/null actual_diff_dirstat &&\n' span_id: 1548 ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep -q "future_param" actual_error &&\n' span_id:1549) (Token id: Id.Lit_Chars val: '\ttest_i18ngrep -q "\\--dirstat" actual_error\n' span_id: 1550 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--dirstat=dummy1,cumulative,2dummy should report both unrecognized parameters' span_id: 1557 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1561) (Token id: Id.Lit_Chars val: '\ttest_must_fail git diff --dirstat=dummy1,cumulative,2dummy HEAD^..HEAD >actual_diff_dirstat 2>actual_error &&\n' span_id: 1562 ) (Token id:Id.Lit_Chars val:'\ttest_debug "cat actual_error" &&\n' span_id:1563) (Token id: Id.Lit_Chars val: '\ttest_cmp /dev/null actual_diff_dirstat &&\n' span_id: 1564 ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep -q "dummy1" actual_error &&\n' span_id:1565) (Token id: Id.Lit_Chars val: '\ttest_i18ngrep -q "2dummy" actual_error &&\n' span_id: 1566 ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep -q "\\--dirstat" actual_error\n' span_id:1567) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'diff.dirstat=future_param,0,lines should warn, but still work' span_id: 1574 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1578) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=future_param,0,lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat 2>actual_error &&\n' span_id: 1579 ) (Token id:Id.Lit_Chars val:'\ttest_debug "cat actual_error" &&\n' span_id:1580) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n' span_id: 1581 ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep -q "future_param" actual_error &&\n' span_id:1582) (Token id: Id.Lit_Chars val: '\ttest_i18ngrep -q "diff\\\\.dirstat" actual_error &&\n' span_id: 1583 ) (Token id:Id.Lit_Chars val:'\n' span_id:1584) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=future_param,0,lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M 2>actual_error &&\n' span_id: 1585 ) (Token id:Id.Lit_Chars val:'\ttest_debug "cat actual_error" &&\n' span_id:1586) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n' span_id: 1587 ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep -q "future_param" actual_error &&\n' span_id:1588) (Token id: Id.Lit_Chars val: '\ttest_i18ngrep -q "diff\\\\.dirstat" actual_error &&\n' span_id: 1589 ) (Token id:Id.Lit_Chars val:'\n' span_id:1590) (Token id: Id.Lit_Chars val: '\tgit -c diff.dirstat=future_param,0,lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC 2>actual_error &&\n' span_id: 1591 ) (Token id:Id.Lit_Chars val:'\ttest_debug "cat actual_error" &&\n' span_id:1592) (Token id: Id.Lit_Chars val: '\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC &&\n' span_id: 1593 ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep -q "future_param" actual_error &&\n' span_id:1594) (Token id: Id.Lit_Chars val: '\ttest_i18ngrep -q "diff\\\\.dirstat" actual_error\n' span_id: 1595 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--shortstat --dirstat should output only one dirstat' span_id: 1602 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1606) (Token id: Id.Lit_Chars val: '\tgit diff --shortstat --dirstat=changes HEAD^..HEAD >out &&\n' span_id: 1607 ) (Token id: Id.Lit_Chars val: '\tgrep " dst/copy/changed/$" out >actual_diff_shortstat_dirstat_changes &&\n' span_id: 1608 ) (Token id: Id.Lit_Chars val: '\ttest_line_count = 1 actual_diff_shortstat_dirstat_changes &&\n' span_id: 1609 ) (Token id:Id.Lit_Chars val:'\n' span_id:1610) (Token id: Id.Lit_Chars val: '\tgit diff --shortstat --dirstat=lines HEAD^..HEAD >out &&\n' span_id: 1611 ) (Token id: Id.Lit_Chars val: '\tgrep " dst/copy/changed/$" out >actual_diff_shortstat_dirstat_lines &&\n' span_id: 1612 ) (Token id: Id.Lit_Chars val: '\ttest_line_count = 1 actual_diff_shortstat_dirstat_lines &&\n' span_id: 1613 ) (Token id:Id.Lit_Chars val:'\n' span_id:1614) (Token id: Id.Lit_Chars val: '\tgit diff --shortstat --dirstat=files HEAD^..HEAD >out &&\n' span_id: 1615 ) (Token id: Id.Lit_Chars val: '\tgrep " dst/copy/changed/$" out >actual_diff_shortstat_dirstat_files &&\n' span_id: 1616 ) (Token id: Id.Lit_Chars val: '\ttest_line_count = 1 actual_diff_shortstat_dirstat_files\n' span_id: 1617 ) ) } ) (C {(test_done)}) ] )