(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'git status' span_id:15))} spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -h in broken repository' span_id:27))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:31) (Token id: Id.Lit_Chars val: '\tgit config --global advice.statusuoption false &&\n' span_id: 32 ) (Token id:Id.Lit_Chars val:'\tmkdir broken &&\n' span_id:33) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -fr broken" &&\n' span_id: 34 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:35) (Token id:Id.Lit_Chars val:'\t\tcd broken &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:37) (Token id: Id.Lit_Chars val: '\t\techo "[status] showuntrackedfiles = CORRUPT" >>.git/config &&\n' span_id: 38 ) (Token id:Id.Lit_Chars val:'\t\ttest_expect_code 129 git status -h >usage 2>&1\n' span_id:39) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep "[Uu]sage" broken/usage\n' span_id:41) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit -h in broken repository' span_id:48))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:52) (Token id:Id.Lit_Chars val:'\tmkdir broken &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\ttest_when_finished "rm -fr broken" &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\t(\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\tcd broken &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:57) (Token id: Id.Lit_Chars val: '\t\techo "[status] showuntrackedfiles = CORRUPT" >>.git/config &&\n' span_id: 58 ) (Token id:Id.Lit_Chars val:'\t\ttest_expect_code 129 git commit -h >usage 2>&1\n' span_id:59) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep "[Uu]sage" broken/usage\n' span_id:61) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:68))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:72) (Token id:Id.Lit_Chars val:'\t: >tracked &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\t: >modified &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\tmkdir dir1 &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\t: >dir1/tracked &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\t: >dir1/modified &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\tmkdir dir2 &&\n' span_id:78) (Token id:Id.Lit_Chars val:'\t: >dir1/tracked &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\t: >dir1/modified &&\n' span_id:80) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\n' span_id:82) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\n' span_id:84) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\tgit commit -m initial &&\n' span_id:86) (Token id:Id.Lit_Chars val:'\t: >untracked &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\t: >dir1/untracked &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\t: >dir2/untracked &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\techo 1 >dir1/modified &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\techo 2 >dir2/modified &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\techo 3 >dir2/added &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\tgit add dir2/added\n' span_id:93) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status (1)' span_id:100))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:104) (Token id: Id.Lit_Chars val: '\ttest_i18ngrep "use \\"git rm --cached <file>\\.\\.\\.\\" to unstage" output\n' span_id: 105 ) ) } ) (command.ShFunction name: strip_comments body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tab) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'\t' span_id:119))} spids: [117] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [ {(sed)} { (DQ ('s/^') (Id.Lit_Other '\\') ('# //; s/^') (Id.Lit_Other '\\') ('#') (Id.Lit_Other '$') ('//; s/^#') ($ Id.VSub_DollarName '$tab') (/) ($ Id.VSub_DollarName '$tab') (/) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:139) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$1'))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:144) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$1')) (.tmp)} ) ] ) (C {(rm)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(mv)} {(DQ ($ Id.VSub_Number '$1')) (.tmp)} {(DQ ($ Id.VSub_Number '$1'))}) ] ) ] ) ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:177) fd: -1 arg_word: {(.gitignore)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:180) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:181)) (OF) } here_end_span_id: 187 stdin_parts: [('.gitignore\n') ('expect*\n') ('output*\n')] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status --column' span_id:192))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:196) (Token id:Id.Lit_Chars val:'\tcat >expect <<\\EOF &&\n' span_id:197) (Token id:Id.Lit_Chars val:'# On branch master\n' span_id:198) (Token id:Id.Lit_Chars val:'# Changes to be committed:\n' span_id:199) (Token id:Id.Lit_Chars val:'# (use "git reset HEAD <file>..." to unstage)\n' span_id:200) (Token id:Id.Lit_Chars val:'#\n' span_id:201) (Token id:Id.Lit_Chars val:'#\tnew file: dir2/added\n' span_id:202) (Token id:Id.Lit_Chars val:'#\n' span_id:203) (Token id:Id.Lit_Chars val:'# Changes not staged for commit:\n' span_id:204) (Token id: Id.Lit_Chars val: '# (use "git add <file>..." to update what will be committed)\n' span_id: 205 ) (Token id: Id.Lit_Chars val: '# (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 206 ) (Token id:Id.Lit_Chars val:'#\n' span_id:207) (Token id:Id.Lit_Chars val:'#\tmodified: dir1/modified\n' span_id:208) (Token id:Id.Lit_Chars val:'#\n' span_id:209) (Token id:Id.Lit_Chars val:'# Untracked files:\n' span_id:210) (Token id: Id.Lit_Chars val: '# (use "git add <file>..." to include in what will be committed)\n' span_id: 211 ) (Token id:Id.Lit_Chars val:'#\n' span_id:212) (Token id:Id.Lit_Chars val:'#\tdir1/untracked dir2/untracked\n' span_id:213) (Token id:Id.Lit_Chars val:'#\tdir2/modified untracked\n' span_id:214) (Token id:Id.Lit_Chars val:'#\n' span_id:215) (Token id:Id.Lit_Chars val:'EOF\n' span_id:216) (Token id: Id.Lit_Chars val: '\tCOLUMNS=50 git -c status.displayCommentPrefix=true status --column="column dense" >output &&\n' span_id: 217 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:218) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status --column status.displayCommentPrefix=false' span_id: 225 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:229) (Token id:Id.Lit_Chars val:'\tstrip_comments expect &&\n' span_id:230) (Token id: Id.Lit_Chars val: '\tCOLUMNS=49 git -c status.displayCommentPrefix=false status --column="column dense" >output &&\n' span_id: 231 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:232) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:238) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:241) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:242)) (OF) } here_end_span_id: 265 stdin_parts: [ ('# On branch master\n') ('# Changes to be committed:\n') ('# (use "git reset HEAD <file>..." to unstage)\n') ('#\n') ('#\tnew file: dir2/added\n') ('#\n') ('# Changes not staged for commit:\n') ('# (use "git add <file>..." to update what will be committed)\n') ('# (use "git checkout -- <file>..." to discard changes in working directory)\n') ('#\n') ('#\tmodified: dir1/modified\n') ('#\n') ('# Untracked files:\n') ('# (use "git add <file>..." to include in what will be committed)\n') ('#\n') ('#\tdir1/untracked\n') ('#\tdir2/modified\n') ('#\tdir2/untracked\n') ('#\tuntracked\n') ('#\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status with status.displayCommentPrefix=true' span_id:270))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:274) (Token id: Id.Lit_Chars val: '\tgit -c status.displayCommentPrefix=true status >output &&\n' span_id: 275 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:276) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status with status.displayCommentPrefix=false' span_id:283))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:287) (Token id:Id.Lit_Chars val:'\tstrip_comments expect &&\n' span_id:288) (Token id: Id.Lit_Chars val: '\tgit -c status.displayCommentPrefix=false status >output &&\n' span_id: 289 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:290) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -v' span_id:297))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:301) (Token id: Id.Lit_Chars val: '\t(cat expect && git diff --cached) >expect-with-v &&\n' span_id: 302 ) (Token id:Id.Lit_Chars val:'\tgit status -v >output &&\n' span_id:303) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect-with-v output\n' span_id:304) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -v -v' span_id:311))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:315) (Token id:Id.Lit_Chars val:'\t(cat expect &&\n' span_id:316) (Token id:Id.Lit_Chars val:'\t echo "Changes to be committed:" &&\n' span_id:317) (Token id: Id.Lit_Chars val: '\t git -c diff.mnemonicprefix=true diff --cached &&\n' span_id: 318 ) (Token id: Id.Lit_Chars val: '\t echo "--------------------------------------------------" &&\n' span_id: 319 ) (Token id:Id.Lit_Chars val:'\t echo "Changes not staged for commit:" &&\n' span_id:320) (Token id: Id.Lit_Chars val: '\t git -c diff.mnemonicprefix=true diff) >expect-with-v &&\n' span_id: 321 ) (Token id:Id.Lit_Chars val:'\tgit status -v -v >output &&\n' span_id:322) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect-with-v output\n' span_id:323) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup fake editor' span_id:330))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:334) (Token id:Id.Lit_Chars val:'\tcat >.git/editor <<-\\EOF &&\n' span_id:335) (Token id:Id.Lit_Chars val:'\t#! /bin/sh\n' span_id:336) (Token id:Id.Lit_Chars val:'\tcp "$1" output\n' span_id:337) (Token id:Id.Lit_Chars val:'EOF\n' span_id:338) (Token id:Id.Lit_Chars val:'\tchmod 755 .git/editor\n' span_id:339) ) } ) (command.ShFunction name: commit_template_commented body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EDITOR) op: assign_op.Equal rhs: {(.git/editor)} spids: [354] ) ] ) (C {(export)} {(EDITOR)}) (C {(test_must_fail)} {(git)} {(commit)}) ] ) ] ) ) (command.Pipeline children: [ (C {(grep)} {(SQ (Token id:Id.Lit_Chars val:'^[^#]' span_id:388))} {(output)}) ] negated: T ) ] ) ] ) ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'commit ignores status.displayCommentPrefix=false in COMMIT_EDITMSG' span_id: 399 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:403) (Token id:Id.Lit_Chars val:'\tcommit_template_commented\n' span_id:404) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:410) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:413) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:414)) (OF) } here_end_span_id: 430 stdin_parts: [ ('On branch master\n') ('Changes to be committed:\n') ('\tnew file: dir2/added\n') ('\n') ('Changes not staged for commit:\n') ('\tmodified: dir1/modified\n') ('\n') ('Untracked files:\n') ('\tdir1/untracked\n') ('\tdir2/modified\n') ('\tdir2/untracked\n') ('\tuntracked\n') ('\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status (advice.statusHints false)' span_id:435))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:439) (Token id: Id.Lit_Chars val: '\ttest_config advice.statusHints false &&\n' span_id: 440 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:441) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:442) (Token id:Id.Lit_Chars val:'\n' span_id:443) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:449) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:452) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:453)) (OF) } here_end_span_id: 462 stdin_parts: [ (' M dir1/modified\n') ('A dir2/added\n') ('?? dir1/untracked\n') ('?? dir2/modified\n') ('?? dir2/untracked\n') ('?? untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s' span_id:467))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:471) (Token id:Id.Lit_Chars val:'\n' span_id:472) (Token id:Id.Lit_Chars val:'\tgit status -s >output &&\n' span_id:473) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:474) (Token id:Id.Lit_Chars val:'\n' span_id:475) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status with gitignore' span_id:482))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:486) (Token id:Id.Lit_Chars val:'\t{\n' span_id:487) (Token id:Id.Lit_Chars val:'\t\techo ".gitignore" &&\n' span_id:488) (Token id:Id.Lit_Chars val:'\t\techo "expect*" &&\n' span_id:489) (Token id:Id.Lit_Chars val:'\t\techo "output" &&\n' span_id:490) (Token id:Id.Lit_Chars val:'\t\techo "untracked"\n' span_id:491) (Token id:Id.Lit_Chars val:'\t} >.gitignore &&\n' span_id:492) (Token id:Id.Lit_Chars val:'\n' span_id:493) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:494) (Token id:Id.Lit_Chars val:'\t M dir1/modified\n' span_id:495) (Token id:Id.Lit_Chars val:'\tA dir2/added\n' span_id:496) (Token id:Id.Lit_Chars val:'\t?? dir2/modified\n' span_id:497) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:498) (Token id:Id.Lit_Chars val:'\tgit status -s >output &&\n' span_id:499) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output &&\n' span_id:500) (Token id:Id.Lit_Chars val:'\n' span_id:501) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:502) (Token id:Id.Lit_Chars val:'\t M dir1/modified\n' span_id:503) (Token id:Id.Lit_Chars val:'\tA dir2/added\n' span_id:504) (Token id:Id.Lit_Chars val:'\t?? dir2/modified\n' span_id:505) (Token id:Id.Lit_Chars val:'\t!! .gitignore\n' span_id:506) (Token id:Id.Lit_Chars val:'\t!! dir1/untracked\n' span_id:507) (Token id:Id.Lit_Chars val:'\t!! dir2/untracked\n' span_id:508) (Token id:Id.Lit_Chars val:'\t!! expect\n' span_id:509) (Token id:Id.Lit_Chars val:'\t!! expect-with-v\n' span_id:510) (Token id:Id.Lit_Chars val:'\t!! output\n' span_id:511) (Token id:Id.Lit_Chars val:'\t!! untracked\n' span_id:512) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:513) (Token id:Id.Lit_Chars val:'\tgit status -s --ignored >output &&\n' span_id:514) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output &&\n' span_id:515) (Token id:Id.Lit_Chars val:'\n' span_id:516) (Token id:Id.Lit_Chars val:'\tcat >expect <<\\EOF &&\n' span_id:517) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:518) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:519) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:520) (Token id:Id.Lit_Chars val:'\n' span_id:521) (Token id:Id.Lit_Chars val:'\tnew file: dir2/added\n' span_id:522) (Token id:Id.Lit_Chars val:'\n' span_id:523) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:524) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 525 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 526 ) (Token id:Id.Lit_Chars val:'\n' span_id:527) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:528) (Token id:Id.Lit_Chars val:'\n' span_id:529) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:530) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 531 ) (Token id:Id.Lit_Chars val:'\n' span_id:532) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:533) (Token id:Id.Lit_Chars val:'\n' span_id:534) (Token id:Id.Lit_Chars val:'Ignored files:\n' span_id:535) (Token id: Id.Lit_Chars val: ' (use "git add -f <file>..." to include in what will be committed)\n' span_id: 536 ) (Token id:Id.Lit_Chars val:'\n' span_id:537) (Token id:Id.Lit_Chars val:'\t.gitignore\n' span_id:538) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:539) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:540) (Token id:Id.Lit_Chars val:'\texpect\n' span_id:541) (Token id:Id.Lit_Chars val:'\texpect-with-v\n' span_id:542) (Token id:Id.Lit_Chars val:'\toutput\n' span_id:543) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:544) (Token id:Id.Lit_Chars val:'\n' span_id:545) (Token id:Id.Lit_Chars val:'EOF\n' span_id:546) (Token id:Id.Lit_Chars val:'\tgit status --ignored >output &&\n' span_id:547) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:548) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status with gitignore (nothing untracked)' span_id:555))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:559) (Token id:Id.Lit_Chars val:'\t{\n' span_id:560) (Token id:Id.Lit_Chars val:'\t\techo ".gitignore" &&\n' span_id:561) (Token id:Id.Lit_Chars val:'\t\techo "expect*" &&\n' span_id:562) (Token id:Id.Lit_Chars val:'\t\techo "dir2/modified" &&\n' span_id:563) (Token id:Id.Lit_Chars val:'\t\techo "output" &&\n' span_id:564) (Token id:Id.Lit_Chars val:'\t\techo "untracked"\n' span_id:565) (Token id:Id.Lit_Chars val:'\t} >.gitignore &&\n' span_id:566) (Token id:Id.Lit_Chars val:'\n' span_id:567) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:568) (Token id:Id.Lit_Chars val:'\t M dir1/modified\n' span_id:569) (Token id:Id.Lit_Chars val:'\tA dir2/added\n' span_id:570) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:571) (Token id:Id.Lit_Chars val:'\tgit status -s >output &&\n' span_id:572) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output &&\n' span_id:573) (Token id:Id.Lit_Chars val:'\n' span_id:574) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:575) (Token id:Id.Lit_Chars val:'\t M dir1/modified\n' span_id:576) (Token id:Id.Lit_Chars val:'\tA dir2/added\n' span_id:577) (Token id:Id.Lit_Chars val:'\t!! .gitignore\n' span_id:578) (Token id:Id.Lit_Chars val:'\t!! dir1/untracked\n' span_id:579) (Token id:Id.Lit_Chars val:'\t!! dir2/modified\n' span_id:580) (Token id:Id.Lit_Chars val:'\t!! dir2/untracked\n' span_id:581) (Token id:Id.Lit_Chars val:'\t!! expect\n' span_id:582) (Token id:Id.Lit_Chars val:'\t!! expect-with-v\n' span_id:583) (Token id:Id.Lit_Chars val:'\t!! output\n' span_id:584) (Token id:Id.Lit_Chars val:'\t!! untracked\n' span_id:585) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:586) (Token id:Id.Lit_Chars val:'\tgit status -s --ignored >output &&\n' span_id:587) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output &&\n' span_id:588) (Token id:Id.Lit_Chars val:'\n' span_id:589) (Token id:Id.Lit_Chars val:'\tcat >expect <<\\EOF &&\n' span_id:590) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:591) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:592) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:593) (Token id:Id.Lit_Chars val:'\n' span_id:594) (Token id:Id.Lit_Chars val:'\tnew file: dir2/added\n' span_id:595) (Token id:Id.Lit_Chars val:'\n' span_id:596) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:597) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 598 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 599 ) (Token id:Id.Lit_Chars val:'\n' span_id:600) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:601) (Token id:Id.Lit_Chars val:'\n' span_id:602) (Token id:Id.Lit_Chars val:'Ignored files:\n' span_id:603) (Token id: Id.Lit_Chars val: ' (use "git add -f <file>..." to include in what will be committed)\n' span_id: 604 ) (Token id:Id.Lit_Chars val:'\n' span_id:605) (Token id:Id.Lit_Chars val:'\t.gitignore\n' span_id:606) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:607) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:608) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:609) (Token id:Id.Lit_Chars val:'\texpect\n' span_id:610) (Token id:Id.Lit_Chars val:'\texpect-with-v\n' span_id:611) (Token id:Id.Lit_Chars val:'\toutput\n' span_id:612) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:613) (Token id:Id.Lit_Chars val:'\n' span_id:614) (Token id:Id.Lit_Chars val:'EOF\n' span_id:615) (Token id:Id.Lit_Chars val:'\tgit status --ignored >output &&\n' span_id:616) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:617) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:623) fd: -1 arg_word: {(.gitignore)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:626) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:627)) (OF) } here_end_span_id: 633 stdin_parts: [('.gitignore\n') ('expect*\n') ('output*\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:637) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:640) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:641)) (OF) } here_end_span_id: 651 stdin_parts: [ ('## master\n') (' M dir1/modified\n') ('A dir2/added\n') ('?? dir1/untracked\n') ('?? dir2/modified\n') ('?? dir2/untracked\n') ('?? untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s -b' span_id:656))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:660) (Token id:Id.Lit_Chars val:'\n' span_id:661) (Token id:Id.Lit_Chars val:'\tgit status -s -b >output &&\n' span_id:662) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:663) (Token id:Id.Lit_Chars val:'\n' span_id:664) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s -z -b' span_id:671))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:675) (Token id:Id.Lit_Chars val:'\ttr "\\\\n" Q <expect >expect.q &&\n' span_id:676) (Token id:Id.Lit_Chars val:'\tmv expect.q expect &&\n' span_id:677) (Token id:Id.Lit_Chars val:'\tgit status -s -z -b >output &&\n' span_id:678) (Token id:Id.Lit_Chars val:'\tnul_to_q <output >output.q &&\n' span_id:679) (Token id:Id.Lit_Chars val:'\tmv output.q output &&\n' span_id:680) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:681) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup dir3' span_id:688))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:692) (Token id:Id.Lit_Chars val:'\tmkdir dir3 &&\n' span_id:693) (Token id:Id.Lit_Chars val:'\t: >dir3/untracked1 &&\n' span_id:694) (Token id:Id.Lit_Chars val:'\t: >dir3/untracked2\n' span_id:695) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -uno' span_id:702))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:706) (Token id:Id.Lit_Chars val:'\tcat >expect <<EOF &&\n' span_id:707) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:708) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:709) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:710) (Token id:Id.Lit_Chars val:'\n' span_id:711) (Token id:Id.Lit_Chars val:'\tnew file: dir2/added\n' span_id:712) (Token id:Id.Lit_Chars val:'\n' span_id:713) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:714) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 715 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 716 ) (Token id:Id.Lit_Chars val:'\n' span_id:717) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:718) (Token id:Id.Lit_Chars val:'\n' span_id:719) (Token id: Id.Lit_Chars val: 'Untracked files not listed (use -u option to show untracked files)\n' span_id: 720 ) (Token id:Id.Lit_Chars val:'EOF\n' span_id:721) (Token id:Id.Lit_Chars val:'\tgit status -uno >output &&\n' span_id:722) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:723) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status (status.showUntrackedFiles no)' span_id:730))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:734) (Token id: Id.Lit_Chars val: '\ttest_config status.showuntrackedfiles no &&\n' span_id: 735 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:736) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:737) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -uno (advice.statusHints false)' span_id:744))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:748) (Token id:Id.Lit_Chars val:'\tcat >expect <<EOF &&\n' span_id:749) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:750) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:751) (Token id:Id.Lit_Chars val:'\tnew file: dir2/added\n' span_id:752) (Token id:Id.Lit_Chars val:'\n' span_id:753) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:754) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:755) (Token id:Id.Lit_Chars val:'\n' span_id:756) (Token id:Id.Lit_Chars val:'Untracked files not listed\n' span_id:757) (Token id:Id.Lit_Chars val:'EOF\n' span_id:758) (Token id: Id.Lit_Chars val: '\ttest_config advice.statusHints false &&\n' span_id: 759 ) (Token id:Id.Lit_Chars val:'\tgit status -uno >output &&\n' span_id:760) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:761) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:767) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:770) fd: -1 here_begin: {(EOF)} here_end_span_id: 777 stdin_parts: [(' M dir1/modified\n') ('A dir2/added\n')] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s -uno' span_id:781))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:785) (Token id:Id.Lit_Chars val:'\tgit status -s -uno >output &&\n' span_id:786) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:787) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s (status.showUntrackedFiles no)' span_id:794))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:798) (Token id: Id.Lit_Chars val: '\tgit config status.showuntrackedfiles no &&\n' span_id: 799 ) (Token id:Id.Lit_Chars val:'\tgit status -s >output &&\n' span_id:800) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:801) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -unormal' span_id:808))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:812) (Token id:Id.Lit_Chars val:'\tcat >expect <<EOF &&\n' span_id:813) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:814) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:815) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:816) (Token id:Id.Lit_Chars val:'\n' span_id:817) (Token id:Id.Lit_Chars val:'\tnew file: dir2/added\n' span_id:818) (Token id:Id.Lit_Chars val:'\n' span_id:819) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:820) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 821 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 822 ) (Token id:Id.Lit_Chars val:'\n' span_id:823) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:824) (Token id:Id.Lit_Chars val:'\n' span_id:825) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:826) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 827 ) (Token id:Id.Lit_Chars val:'\n' span_id:828) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:829) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:830) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:831) (Token id:Id.Lit_Chars val:'\tdir3/\n' span_id:832) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:833) (Token id:Id.Lit_Chars val:'\n' span_id:834) (Token id:Id.Lit_Chars val:'EOF\n' span_id:835) (Token id:Id.Lit_Chars val:'\tgit status -unormal >output &&\n' span_id:836) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:837) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status (status.showUntrackedFiles normal)' span_id:844))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:848) (Token id: Id.Lit_Chars val: '\ttest_config status.showuntrackedfiles normal &&\n' span_id: 849 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:850) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:851) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:857) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:860) fd: -1 here_begin: {(EOF)} here_end_span_id: 871 stdin_parts: [ (' M dir1/modified\n') ('A dir2/added\n') ('?? dir1/untracked\n') ('?? dir2/modified\n') ('?? dir2/untracked\n') ('?? dir3/\n') ('?? untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s -unormal' span_id:875))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:879) (Token id:Id.Lit_Chars val:'\tgit status -s -unormal >output &&\n' span_id:880) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:881) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s (status.showUntrackedFiles normal)' span_id:888))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:892) (Token id: Id.Lit_Chars val: '\tgit config status.showuntrackedfiles normal &&\n' span_id: 893 ) (Token id:Id.Lit_Chars val:'\tgit status -s >output &&\n' span_id:894) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:895) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -uall' span_id:902))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:906) (Token id:Id.Lit_Chars val:'\tcat >expect <<EOF &&\n' span_id:907) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:908) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:909) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:910) (Token id:Id.Lit_Chars val:'\n' span_id:911) (Token id:Id.Lit_Chars val:'\tnew file: dir2/added\n' span_id:912) (Token id:Id.Lit_Chars val:'\n' span_id:913) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:914) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 915 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 916 ) (Token id:Id.Lit_Chars val:'\n' span_id:917) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:918) (Token id:Id.Lit_Chars val:'\n' span_id:919) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:920) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 921 ) (Token id:Id.Lit_Chars val:'\n' span_id:922) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:923) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:924) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:925) (Token id:Id.Lit_Chars val:'\tdir3/untracked1\n' span_id:926) (Token id:Id.Lit_Chars val:'\tdir3/untracked2\n' span_id:927) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:928) (Token id:Id.Lit_Chars val:'\n' span_id:929) (Token id:Id.Lit_Chars val:'EOF\n' span_id:930) (Token id:Id.Lit_Chars val:'\tgit status -uall >output &&\n' span_id:931) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:932) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status (status.showUntrackedFiles all)' span_id:939))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:943) (Token id: Id.Lit_Chars val: '\ttest_config status.showuntrackedfiles all &&\n' span_id: 944 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:945) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:946) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'teardown dir3' span_id:953))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:957) (Token id:Id.Lit_Chars val:'\trm -rf dir3\n' span_id:958) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:964) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:967) fd: -1 here_begin: {(EOF)} here_end_span_id: 977 stdin_parts: [ (' M dir1/modified\n') ('A dir2/added\n') ('?? dir1/untracked\n') ('?? dir2/modified\n') ('?? dir2/untracked\n') ('?? untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s -uall' span_id:981))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:985) (Token id: Id.Lit_Chars val: '\ttest_unconfig status.showuntrackedfiles &&\n' span_id: 986 ) (Token id:Id.Lit_Chars val:'\tgit status -s -uall >output &&\n' span_id:987) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:988) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s (status.showUntrackedFiles all)' span_id:994))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:998) (Token id: Id.Lit_Chars val: '\ttest_config status.showuntrackedfiles all &&\n' span_id: 999 ) (Token id:Id.Lit_Chars val:'\tgit status -s >output &&\n' span_id:1000) (Token id:Id.Lit_Chars val:'\trm -rf dir3 &&\n' span_id:1001) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1002) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status with relative paths' span_id:1009))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1013) (Token id:Id.Lit_Chars val:'\tcat >expect <<\\EOF &&\n' span_id:1014) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:1015) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:1016) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:1017) (Token id:Id.Lit_Chars val:'\n' span_id:1018) (Token id:Id.Lit_Chars val:'\tnew file: ../dir2/added\n' span_id:1019) (Token id:Id.Lit_Chars val:'\n' span_id:1020) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:1021) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 1022 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 1023 ) (Token id:Id.Lit_Chars val:'\n' span_id:1024) (Token id:Id.Lit_Chars val:'\tmodified: modified\n' span_id:1025) (Token id:Id.Lit_Chars val:'\n' span_id:1026) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:1027) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 1028 ) (Token id:Id.Lit_Chars val:'\n' span_id:1029) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:1030) (Token id:Id.Lit_Chars val:'\t../dir2/modified\n' span_id:1031) (Token id:Id.Lit_Chars val:'\t../dir2/untracked\n' span_id:1032) (Token id:Id.Lit_Chars val:'\t../untracked\n' span_id:1033) (Token id:Id.Lit_Chars val:'\n' span_id:1034) (Token id:Id.Lit_Chars val:'EOF\n' span_id:1035) (Token id:Id.Lit_Chars val:'\t(cd dir1 && git status) >output &&\n' span_id:1036) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1037) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1043) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1046) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:1047)) (OF) } here_end_span_id: 1056 stdin_parts: [ (' M modified\n') ('A ../dir2/added\n') ('?? untracked\n') ('?? ../dir2/modified\n') ('?? ../dir2/untracked\n') ('?? ../untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s with relative paths' span_id:1060))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1064) (Token id:Id.Lit_Chars val:'\n' span_id:1065) (Token id:Id.Lit_Chars val:'\t(cd dir1 && git status -s) >output &&\n' span_id:1066) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1067) (Token id:Id.Lit_Chars val:'\n' span_id:1068) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1074) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1077) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:1078)) (OF) } here_end_span_id: 1087 stdin_parts: [ (' M dir1/modified\n') ('A dir2/added\n') ('?? dir1/untracked\n') ('?? dir2/modified\n') ('?? dir2/untracked\n') ('?? untracked\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status --porcelain ignores relative paths setting' span_id: 1092 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1096) (Token id:Id.Lit_Chars val:'\n' span_id:1097) (Token id:Id.Lit_Chars val:'\t(cd dir1 && git status --porcelain) >output &&\n' span_id:1098) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1099) (Token id:Id.Lit_Chars val:'\n' span_id:1100) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup unique colors' span_id:1107))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1111) (Token id:Id.Lit_Chars val:'\n' span_id:1112) (Token id:Id.Lit_Chars val:'\tgit config status.color.untracked blue &&\n' span_id:1113) (Token id: Id.Lit_Chars val: '\tgit config status.color.branch green\n' span_id: 1114 ) (Token id:Id.Lit_Chars val:'\n' span_id:1115) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status with color.ui' span_id:1122))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1126) (Token id:Id.Lit_Chars val:'\tcat >expect <<\\EOF &&\n' span_id:1127) (Token id:Id.Lit_Chars val:'On branch <GREEN>master<RESET>\n' span_id:1128) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:1129) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:1130) (Token id:Id.Lit_Chars val:'\n' span_id:1131) (Token id:Id.Lit_Chars val:'\t<GREEN>new file: dir2/added<RESET>\n' span_id:1132) (Token id:Id.Lit_Chars val:'\n' span_id:1133) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:1134) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 1135 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 1136 ) (Token id:Id.Lit_Chars val:'\n' span_id:1137) (Token id: Id.Lit_Chars val: '\t<RED>modified: dir1/modified<RESET>\n' span_id: 1138 ) (Token id:Id.Lit_Chars val:'\n' span_id:1139) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:1140) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 1141 ) (Token id:Id.Lit_Chars val:'\n' span_id:1142) (Token id:Id.Lit_Chars val:'\t<BLUE>dir1/untracked<RESET>\n' span_id:1143) (Token id:Id.Lit_Chars val:'\t<BLUE>dir2/modified<RESET>\n' span_id:1144) (Token id:Id.Lit_Chars val:'\t<BLUE>dir2/untracked<RESET>\n' span_id:1145) (Token id:Id.Lit_Chars val:'\t<BLUE>untracked<RESET>\n' span_id:1146) (Token id:Id.Lit_Chars val:'\n' span_id:1147) (Token id:Id.Lit_Chars val:'EOF\n' span_id:1148) (Token id:Id.Lit_Chars val:'\ttest_config color.ui always &&\n' span_id:1149) (Token id:Id.Lit_Chars val:'\tgit status | test_decode_color >output &&\n' span_id:1150) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1151) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status with color.status' span_id:1158))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1162) (Token id:Id.Lit_Chars val:'\ttest_config color.status always &&\n' span_id:1163) (Token id:Id.Lit_Chars val:'\tgit status | test_decode_color >output &&\n' span_id:1164) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1165) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1171) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1174) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:1175)) (OF) } here_end_span_id: 1184 stdin_parts: [ (' <RED>M<RESET> dir1/modified\n') ('<GREEN>A<RESET> dir2/added\n') ('<BLUE>??<RESET> dir1/untracked\n') ('<BLUE>??<RESET> dir2/modified\n') ('<BLUE>??<RESET> dir2/untracked\n') ('<BLUE>??<RESET> untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s with color.ui' span_id:1189))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1193) (Token id:Id.Lit_Chars val:'\n' span_id:1194) (Token id:Id.Lit_Chars val:'\tgit config color.ui always &&\n' span_id:1195) (Token id: Id.Lit_Chars val: '\tgit status -s | test_decode_color >output &&\n' span_id: 1196 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1197) (Token id:Id.Lit_Chars val:'\n' span_id:1198) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s with color.status' span_id:1205))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1209) (Token id:Id.Lit_Chars val:'\n' span_id:1210) (Token id:Id.Lit_Chars val:'\tgit config --unset color.ui &&\n' span_id:1211) (Token id:Id.Lit_Chars val:'\tgit config color.status always &&\n' span_id:1212) (Token id:Id.Lit_Chars val:'\tgit status -s | test_decode_color >output &&\n' span_id:1213) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1214) (Token id:Id.Lit_Chars val:'\n' span_id:1215) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1221) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1224) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:1225)) (OF) } here_end_span_id: 1235 stdin_parts: [ ('## <GREEN>master<RESET>\n') (' <RED>M<RESET> dir1/modified\n') ('<GREEN>A<RESET> dir2/added\n') ('<BLUE>??<RESET> dir1/untracked\n') ('<BLUE>??<RESET> dir2/modified\n') ('<BLUE>??<RESET> dir2/untracked\n') ('<BLUE>??<RESET> untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s -b with color.status' span_id:1240))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1244) (Token id:Id.Lit_Chars val:'\n' span_id:1245) (Token id:Id.Lit_Chars val:'\tgit status -s -b | test_decode_color >output &&\n' span_id:1246) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1247) (Token id:Id.Lit_Chars val:'\n' span_id:1248) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1254) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1257) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:1258)) (OF) } here_end_span_id: 1267 stdin_parts: [ (' M dir1/modified\n') ('A dir2/added\n') ('?? dir1/untracked\n') ('?? dir2/modified\n') ('?? dir2/untracked\n') ('?? untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status --porcelain ignores color.ui' span_id:1272))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1276) (Token id:Id.Lit_Chars val:'\n' span_id:1277) (Token id:Id.Lit_Chars val:'\tgit config --unset color.status &&\n' span_id:1278) (Token id:Id.Lit_Chars val:'\tgit config color.ui always &&\n' span_id:1279) (Token id:Id.Lit_Chars val:'\tgit status --porcelain | test_decode_color >output &&\n' span_id:1280) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1281) (Token id:Id.Lit_Chars val:'\n' span_id:1282) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status --porcelain ignores color.status' span_id:1289))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1293) (Token id:Id.Lit_Chars val:'\n' span_id:1294) (Token id:Id.Lit_Chars val:'\tgit config --unset color.ui &&\n' span_id:1295) (Token id:Id.Lit_Chars val:'\tgit config color.status always &&\n' span_id:1296) (Token id:Id.Lit_Chars val:'\tgit status --porcelain | test_decode_color >output &&\n' span_id:1297) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1298) (Token id:Id.Lit_Chars val:'\n' span_id:1299) ) } ) (C {(git)} {(config)} {(--unset)} {(color.status)}) (C {(git)} {(config)} {(--unset)} {(color.ui)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status --porcelain respects -b' span_id:1326))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1330) (Token id:Id.Lit_Chars val:'\n' span_id:1331) (Token id:Id.Lit_Chars val:'\tgit status --porcelain -b >output &&\n' span_id:1332) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1333) (Token id:Id.Lit_Chars val:'\t\techo "## master" &&\n' span_id:1334) (Token id:Id.Lit_Chars val:'\t\tcat expect\n' span_id:1335) (Token id:Id.Lit_Chars val:'\t} >tmp &&\n' span_id:1336) (Token id:Id.Lit_Chars val:'\tmv tmp expect &&\n' span_id:1337) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1338) (Token id:Id.Lit_Chars val:'\n' span_id:1339) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status without relative paths' span_id:1348))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1352) (Token id:Id.Lit_Chars val:'\tcat >expect <<\\EOF &&\n' span_id:1353) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:1354) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:1355) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:1356) (Token id:Id.Lit_Chars val:'\n' span_id:1357) (Token id:Id.Lit_Chars val:'\tnew file: dir2/added\n' span_id:1358) (Token id:Id.Lit_Chars val:'\n' span_id:1359) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:1360) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 1361 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 1362 ) (Token id:Id.Lit_Chars val:'\n' span_id:1363) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:1364) (Token id:Id.Lit_Chars val:'\n' span_id:1365) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:1366) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 1367 ) (Token id:Id.Lit_Chars val:'\n' span_id:1368) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:1369) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:1370) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:1371) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:1372) (Token id:Id.Lit_Chars val:'\n' span_id:1373) (Token id:Id.Lit_Chars val:'EOF\n' span_id:1374) (Token id:Id.Lit_Chars val:'\ttest_config status.relativePaths false &&\n' span_id:1375) (Token id:Id.Lit_Chars val:'\t(cd dir1 && git status) >output &&\n' span_id:1376) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1377) (Token id:Id.Lit_Chars val:'\n' span_id:1378) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1384) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1387) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:1388)) (OF) } here_end_span_id: 1397 stdin_parts: [ (' M dir1/modified\n') ('A dir2/added\n') ('?? dir1/untracked\n') ('?? dir2/modified\n') ('?? dir2/untracked\n') ('?? untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s without relative paths' span_id:1402))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1406) (Token id:Id.Lit_Chars val:'\n' span_id:1407) (Token id:Id.Lit_Chars val:'\ttest_config status.relativePaths false &&\n' span_id:1408) (Token id: Id.Lit_Chars val: '\t(cd dir1 && git status -s) >output &&\n' span_id: 1409 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1410) (Token id:Id.Lit_Chars val:'\n' span_id:1411) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'dry-run of partial commit excluding new file in index' span_id: 1418 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1422) (Token id:Id.Lit_Chars val:'\tcat >expect <<EOF &&\n' span_id:1423) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:1424) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:1425) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:1426) (Token id:Id.Lit_Chars val:'\n' span_id:1427) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:1428) (Token id:Id.Lit_Chars val:'\n' span_id:1429) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:1430) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 1431 ) (Token id:Id.Lit_Chars val:'\n' span_id:1432) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:1433) (Token id:Id.Lit_Chars val:'\tdir2/\n' span_id:1434) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:1435) (Token id:Id.Lit_Chars val:'\n' span_id:1436) (Token id:Id.Lit_Chars val:'EOF\n' span_id:1437) (Token id: Id.Lit_Chars val: '\tgit commit --dry-run dir1/modified >output &&\n' span_id: 1438 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1439) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1445) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1448) fd: -1 here_begin: {(EOF)} here_end_span_id: 1455 stdin_parts: [ (':100644 100644 ') ($ Id.VSub_DollarName '$EMPTY_BLOB') (' 0000000000000000000000000000000000000000 M\tdir1/modified\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status refreshes the index' span_id:1459))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1463) (Token id:Id.Lit_Chars val:'\ttouch dir2/added &&\n' span_id:1464) (Token id:Id.Lit_Chars val:'\tgit status &&\n' span_id:1465) (Token id:Id.Lit_Chars val:'\tgit diff-files >output &&\n' span_id:1466) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1467) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup status submodule summary' span_id:1474))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1478) (Token id:Id.Lit_Chars val:'\ttest_create_repo sm && (\n' span_id:1479) (Token id:Id.Lit_Chars val:'\t\tcd sm &&\n' span_id:1480) (Token id:Id.Lit_Chars val:'\t\t>foo &&\n' span_id:1481) (Token id:Id.Lit_Chars val:'\t\tgit add foo &&\n' span_id:1482) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "Add foo"\n' span_id:1483) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:1484) (Token id:Id.Lit_Chars val:'\tgit add sm\n' span_id:1485) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status submodule summary is disabled by default' span_id: 1492 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1496) (Token id:Id.Lit_Chars val:'\tcat >expect <<EOF &&\n' span_id:1497) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:1498) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:1499) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:1500) (Token id:Id.Lit_Chars val:'\n' span_id:1501) (Token id:Id.Lit_Chars val:'\tnew file: dir2/added\n' span_id:1502) (Token id:Id.Lit_Chars val:'\tnew file: sm\n' span_id:1503) (Token id:Id.Lit_Chars val:'\n' span_id:1504) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:1505) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 1506 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 1507 ) (Token id:Id.Lit_Chars val:'\n' span_id:1508) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:1509) (Token id:Id.Lit_Chars val:'\n' span_id:1510) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:1511) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 1512 ) (Token id:Id.Lit_Chars val:'\n' span_id:1513) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:1514) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:1515) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:1516) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:1517) (Token id:Id.Lit_Chars val:'\n' span_id:1518) (Token id:Id.Lit_Chars val:'EOF\n' span_id:1519) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:1520) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1521) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status --untracked-files=all does not show submodule' span_id: 1531 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1535) (Token id: Id.Lit_Chars val: '\tgit status --untracked-files=all >output &&\n' span_id: 1536 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1537) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1543) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1546) fd: -1 here_begin: {(EOF)} here_end_span_id: 1557 stdin_parts: [ (' M dir1/modified\n') ('A dir2/added\n') ('A sm\n') ('?? dir1/untracked\n') ('?? dir2/modified\n') ('?? dir2/untracked\n') ('?? untracked\n') ] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status -s submodule summary is disabled by default' span_id: 1561 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1565) (Token id:Id.Lit_Chars val:'\tgit status -s >output &&\n' span_id:1566) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1567) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status -s --untracked-files=all does not show submodule' span_id: 1577 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1581) (Token id: Id.Lit_Chars val: '\tgit status -s --untracked-files=all >output &&\n' span_id: 1582 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1583) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:head) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1588) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(cd)} {(sm)}) (C {(git)} {(rev-parse)} {(--short) (Id.Lit_Equals '=') (7)} {(--verify)} {(HEAD)} ) ] ) ] ) ) } spids: [1587] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status submodule summary' span_id:1612))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1616) (Token id:Id.Lit_Chars val:'\tcat >expect <<EOF &&\n' span_id:1617) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:1618) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:1619) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:1620) (Token id:Id.Lit_Chars val:'\n' span_id:1621) (Token id:Id.Lit_Chars val:'\tnew file: dir2/added\n' span_id:1622) (Token id:Id.Lit_Chars val:'\tnew file: sm\n' span_id:1623) (Token id:Id.Lit_Chars val:'\n' span_id:1624) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:1625) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 1626 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 1627 ) (Token id:Id.Lit_Chars val:'\n' span_id:1628) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:1629) (Token id:Id.Lit_Chars val:'\n' span_id:1630) (Token id:Id.Lit_Chars val:'Submodule changes to be committed:\n' span_id:1631) (Token id:Id.Lit_Chars val:'\n' span_id:1632) (Token id:Id.Lit_Chars val:'* sm 0000000...$head (1):\n' span_id:1633) (Token id:Id.Lit_Chars val:' > Add foo\n' span_id:1634) (Token id:Id.Lit_Chars val:'\n' span_id:1635) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:1636) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 1637 ) (Token id:Id.Lit_Chars val:'\n' span_id:1638) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:1639) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:1640) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:1641) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:1642) (Token id:Id.Lit_Chars val:'\n' span_id:1643) (Token id:Id.Lit_Chars val:'EOF\n' span_id:1644) (Token id:Id.Lit_Chars val:'\tgit config status.submodulesummary 10 &&\n' span_id:1645) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:1646) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1647) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status submodule summary with status.displayCommentPrefix=false' span_id: 1654 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1658) (Token id:Id.Lit_Chars val:'\tstrip_comments expect &&\n' span_id:1659) (Token id: Id.Lit_Chars val: '\tgit -c status.displayCommentPrefix=false status >output &&\n' span_id: 1660 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1661) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'commit with submodule summary ignores status.displayCommentPrefix' span_id: 1668 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1672) (Token id:Id.Lit_Chars val:'\tcommit_template_commented\n' span_id:1673) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1679) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1682) fd: -1 here_begin: {(EOF)} here_end_span_id: 1693 stdin_parts: [ (' M dir1/modified\n') ('A dir2/added\n') ('A sm\n') ('?? dir1/untracked\n') ('?? dir2/modified\n') ('?? dir2/untracked\n') ('?? untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s submodule summary' span_id:1697))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1701) (Token id:Id.Lit_Chars val:'\tgit status -s >output &&\n' span_id:1702) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1703) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'status submodule summary (clean submodule): commit' span_id: 1710 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1714) (Token id:Id.Lit_Chars val:'\tcat >expect <<EOF &&\n' span_id:1715) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:1716) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:1717) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 1718 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 1719 ) (Token id:Id.Lit_Chars val:'\n' span_id:1720) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:1721) (Token id:Id.Lit_Chars val:'\n' span_id:1722) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:1723) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 1724 ) (Token id:Id.Lit_Chars val:'\n' span_id:1725) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:1726) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:1727) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:1728) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:1729) (Token id:Id.Lit_Chars val:'\n' span_id:1730) (Token id: Id.Lit_Chars val: 'no changes added to commit (use "git add" and/or "git commit -a")\n' span_id: 1731 ) (Token id:Id.Lit_Chars val:'EOF\n' span_id:1732) (Token id: Id.Lit_Chars val: '\tgit commit -m "commit submodule" &&\n' span_id: 1733 ) (Token id:Id.Lit_Chars val:'\tgit config status.submodulesummary 10 &&\n' span_id:1734) (Token id: Id.Lit_Chars val: '\ttest_must_fail git commit --dry-run >output &&\n' span_id: 1735 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:1736) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:1737) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1738) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1744) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1747) fd: -1 here_begin: {(EOF)} here_end_span_id: 1756 stdin_parts: [ (' M dir1/modified\n') ('?? dir1/untracked\n') ('?? dir2/modified\n') ('?? dir2/untracked\n') ('?? untracked\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -s submodule summary (clean submodule)' span_id:1760))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1764) (Token id:Id.Lit_Chars val:'\tgit status -s >output &&\n' span_id:1765) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1766) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'status -z implies porcelain' span_id:1773))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1777) (Token id:Id.Lit_Chars val:'\tgit status --porcelain |\n' span_id:1778) (Token id:Id.Lit_Chars val:'\tperl -pe "s/\\012/\\000/g" >expect &&\n' span_id:1779) (Token id:Id.Lit_Chars val:'\tgit status -z >output &&\n' span_id:1780) (Token id:Id.Lit_Chars val:'\ttest_cmp expect output\n' span_id:1781) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit --dry-run submodule summary (--amend)' span_id:1788))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1792) (Token id:Id.Lit_Chars val:'\tcat >expect <<EOF &&\n' span_id:1793) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:1794) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:1795) (Token id:Id.Lit_Chars val:' (use "git reset HEAD^1 <file>..." to unstage)\n' span_id:1796) (Token id:Id.Lit_Chars val:'\n' span_id:1797) (Token id:Id.Lit_Chars val:'\tnew file: dir2/added\n' span_id:1798) (Token id:Id.Lit_Chars val:'\tnew file: sm\n' span_id:1799) (Token id:Id.Lit_Chars val:'\n' span_id:1800) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:1801) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 1802 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 1803 ) (Token id:Id.Lit_Chars val:'\n' span_id:1804) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:1805) (Token id:Id.Lit_Chars val:'\n' span_id:1806) (Token id:Id.Lit_Chars val:'Submodule changes to be committed:\n' span_id:1807) (Token id:Id.Lit_Chars val:'\n' span_id:1808) (Token id:Id.Lit_Chars val:'* sm 0000000...$head (1):\n' span_id:1809) (Token id:Id.Lit_Chars val:' > Add foo\n' span_id:1810) (Token id:Id.Lit_Chars val:'\n' span_id:1811) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:1812) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 1813 ) (Token id:Id.Lit_Chars val:'\n' span_id:1814) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:1815) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:1816) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:1817) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:1818) (Token id:Id.Lit_Chars val:'\n' span_id:1819) (Token id:Id.Lit_Chars val:'EOF\n' span_id:1820) (Token id:Id.Lit_Chars val:'\tgit config status.submodulesummary 10 &&\n' span_id:1821) (Token id: Id.Lit_Chars val: '\tgit commit --dry-run --amend >output &&\n' span_id: 1822 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1823) ) } ) (C {(test_expect_success)} {(POSIXPERM) (Id.Lit_Comma ',') (SANITY)} {(SQ (Token id:Id.Lit_Chars val:'status succeeds in a read-only repository' span_id:1834))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1838) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1839) (Token id:Id.Lit_Chars val:'\t\tchmod a-w .git &&\n' span_id:1840) (Token id:Id.Lit_Chars val:'\t\t# make dir1/tracked stat-dirty\n' span_id:1841) (Token id: Id.Lit_Chars val: '\t\t>dir1/tracked1 && mv -f dir1/tracked1 dir1/tracked &&\n' span_id: 1842 ) (Token id:Id.Lit_Chars val:'\t\tgit status -s >output &&\n' span_id:1843) (Token id:Id.Lit_Chars val:'\t\t! grep dir1/tracked output &&\n' span_id:1844) (Token id: Id.Lit_Chars val: '\t\t# make sure "status" succeeded without writing index out\n' span_id: 1845 ) (Token id:Id.Lit_Chars val:'\t\tgit diff-files | grep dir1/tracked\n' span_id:1846) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1847) (Token id:Id.Lit_Chars val:'\tstatus=$?\n' span_id:1848) (Token id:Id.Lit_Chars val:'\tchmod 775 .git\n' span_id:1849) (Token id:Id.Lit_Chars val:'\t(exit $status)\n' span_id:1850) ) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {(cd)} {(sm)}) (command.Simple words: [{(echo)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1863) fd: -1 arg_word: {(bar)} ) ] ) (C {(git)} {(add)} {(bar)}) (C {(git)} {(commit)} {(-q)} {(-m)} {(SQ (Token id:Id.Lit_Chars val:'Add bar' span_id:1886))} ) ] ) ] ) ) (C {(git)} {(add)} {(sm)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:new_head) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1899) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(cd)} {(sm)}) (C {(git)} {(rev-parse)} {(--short) (Id.Lit_Equals '=') (7)} {(--verify)} {(HEAD)} ) ] ) ] ) ) } spids: [1898] ) ] ) (C {(touch)} {(.gitmodules)}) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--ignore-submodules=untracked suppresses submodules with untracked content' span_id: 1927 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1931) (Token id:Id.Lit_Chars val:'\tcat > expect << EOF &&\n' span_id:1932) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:1933) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:1934) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:1935) (Token id:Id.Lit_Chars val:'\n' span_id:1936) (Token id:Id.Lit_Chars val:'\tmodified: sm\n' span_id:1937) (Token id:Id.Lit_Chars val:'\n' span_id:1938) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:1939) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 1940 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 1941 ) (Token id:Id.Lit_Chars val:'\n' span_id:1942) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:1943) (Token id:Id.Lit_Chars val:'\n' span_id:1944) (Token id:Id.Lit_Chars val:'Submodule changes to be committed:\n' span_id:1945) (Token id:Id.Lit_Chars val:'\n' span_id:1946) (Token id:Id.Lit_Chars val:'* sm $head...$new_head (1):\n' span_id:1947) (Token id:Id.Lit_Chars val:' > Add bar\n' span_id:1948) (Token id:Id.Lit_Chars val:'\n' span_id:1949) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:1950) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 1951 ) (Token id:Id.Lit_Chars val:'\n' span_id:1952) (Token id:Id.Lit_Chars val:'\t.gitmodules\n' span_id:1953) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:1954) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:1955) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:1956) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:1957) (Token id:Id.Lit_Chars val:'\n' span_id:1958) (Token id:Id.Lit_Chars val:'EOF\n' span_id:1959) (Token id:Id.Lit_Chars val:'\techo modified sm/untracked &&\n' span_id:1960) (Token id:Id.Lit_Chars val:'\tgit status --ignore-submodules=untracked >output &&\n' span_id:1961) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:1962) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '.gitmodules ignore=untracked suppresses submodules with untracked content' span_id: 1969 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1973) (Token id: Id.Lit_Chars val: '\ttest_config diff.ignoreSubmodules dirty &&\n' span_id: 1974 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:1975) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:1976) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore untracked &&\n' span_id: 1977 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 1978 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:1979) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:1980) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 1981 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '.git/config ignore=untracked suppresses submodules with untracked content' span_id: 1988 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1992) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore none &&\n' span_id: 1993 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 1994 ) (Token id:Id.Lit_Chars val:'\tgit config --add submodule.subname.ignore untracked &&\n' span_id:1995) (Token id: Id.Lit_Chars val: '\tgit config --add submodule.subname.path sm &&\n' span_id: 1996 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:1997) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:1998) (Token id:Id.Lit_Chars val:'\tgit config --remove-section submodule.subname &&\n' span_id:1999) (Token id: Id.Lit_Chars val: '\tgit config --remove-section -f .gitmodules submodule.subname\n' span_id: 2000 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--ignore-submodules=dirty suppresses submodules with untracked content' span_id: 2007 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2011) (Token id: Id.Lit_Chars val: '\tgit status --ignore-submodules=dirty >output &&\n' span_id: 2012 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:2013) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '.gitmodules ignore=dirty suppresses submodules with untracked content' span_id: 2020 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2024) (Token id: Id.Lit_Chars val: '\ttest_config diff.ignoreSubmodules dirty &&\n' span_id: 2025 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2026) (Token id:Id.Lit_Chars val:'\t! test -s actual &&\n' span_id:2027) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore dirty &&\n' span_id: 2028 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2029 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2030) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2031) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2032 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '.git/config ignore=dirty suppresses submodules with untracked content' span_id: 2039 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2043) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore none &&\n' span_id: 2044 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2045 ) (Token id:Id.Lit_Chars val:'\tgit config --add submodule.subname.ignore dirty &&\n' span_id:2046) (Token id: Id.Lit_Chars val: '\tgit config --add submodule.subname.path sm &&\n' span_id: 2047 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2048) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2049) (Token id:Id.Lit_Chars val:'\tgit config --remove-section submodule.subname &&\n' span_id:2050) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2051 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--ignore-submodules=dirty suppresses submodules with modified content' span_id: 2058 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2062) (Token id:Id.Lit_Chars val:'\techo modified >sm/foo &&\n' span_id:2063) (Token id:Id.Lit_Chars val:'\tgit status --ignore-submodules=dirty >output &&\n' span_id:2064) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:2065) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '.gitmodules ignore=dirty suppresses submodules with modified content' span_id: 2072 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2076) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore dirty &&\n' span_id: 2077 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2078 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2079) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2080) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2081 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '.git/config ignore=dirty suppresses submodules with modified content' span_id: 2088 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2092) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore none &&\n' span_id: 2093 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2094 ) (Token id:Id.Lit_Chars val:'\tgit config --add submodule.subname.ignore dirty &&\n' span_id:2095) (Token id: Id.Lit_Chars val: '\tgit config --add submodule.subname.path sm &&\n' span_id: 2096 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2097) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2098) (Token id:Id.Lit_Chars val:'\tgit config --remove-section submodule.subname &&\n' span_id:2099) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2100 ) ) } ) (C {(test_expect_success)} {(DQ ("--ignore-submodules=untracked doesn't suppress submodules with modified content"))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2111) (Token id:Id.Lit_Chars val:'\tcat > expect << EOF &&\n' span_id:2112) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:2113) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:2114) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:2115) (Token id:Id.Lit_Chars val:'\n' span_id:2116) (Token id:Id.Lit_Chars val:'\tmodified: sm\n' span_id:2117) (Token id:Id.Lit_Chars val:'\n' span_id:2118) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:2119) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 2120 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 2121 ) (Token id: Id.Lit_Chars val: ' (commit or discard the untracked or modified content in submodules)\n' span_id: 2122 ) (Token id:Id.Lit_Chars val:'\n' span_id:2123) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:2124) (Token id:Id.Lit_Chars val:'\tmodified: sm (modified content)\n' span_id:2125) (Token id:Id.Lit_Chars val:'\n' span_id:2126) (Token id:Id.Lit_Chars val:'Submodule changes to be committed:\n' span_id:2127) (Token id:Id.Lit_Chars val:'\n' span_id:2128) (Token id:Id.Lit_Chars val:'* sm $head...$new_head (1):\n' span_id:2129) (Token id:Id.Lit_Chars val:' > Add bar\n' span_id:2130) (Token id:Id.Lit_Chars val:'\n' span_id:2131) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:2132) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 2133 ) (Token id:Id.Lit_Chars val:'\n' span_id:2134) (Token id:Id.Lit_Chars val:'\t.gitmodules\n' span_id:2135) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:2136) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:2137) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:2138) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:2139) (Token id:Id.Lit_Chars val:'\n' span_id:2140) (Token id:Id.Lit_Chars val:'EOF\n' span_id:2141) (Token id: Id.Lit_Chars val: '\tgit status --ignore-submodules=untracked > output &&\n' span_id: 2142 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:2143) ) } ) (C {(test_expect_success)} {(DQ (".gitmodules ignore=untracked doesn't suppress submodules with modified content"))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2154) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore untracked &&\n' span_id: 2155 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2156 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2157) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2158) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2159 ) ) } ) (C {(test_expect_success)} {(DQ (".git/config ignore=untracked doesn't suppress submodules with modified content"))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2170) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore none &&\n' span_id: 2171 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2172 ) (Token id:Id.Lit_Chars val:'\tgit config --add submodule.subname.ignore untracked &&\n' span_id:2173) (Token id: Id.Lit_Chars val: '\tgit config --add submodule.subname.path sm &&\n' span_id: 2174 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2175) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2176) (Token id:Id.Lit_Chars val:'\tgit config --remove-section submodule.subname &&\n' span_id:2177) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2178 ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:head2) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2183) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(cd)} {(sm)}) (C {(git)} {(commit)} {(-q)} {(-m)} {(DQ ('2nd commit'))} {(foo)}) (C {(git)} {(rev-parse)} {(--short) (Id.Lit_Equals '=') (7)} {(--verify)} {(HEAD)} ) ] ) ] ) ) } spids: [2182] ) ] ) (C {(test_expect_success)} {(DQ ("--ignore-submodules=untracked doesn't suppress submodule summary"))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2227) (Token id:Id.Lit_Chars val:'\tcat > expect << EOF &&\n' span_id:2228) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:2229) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:2230) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:2231) (Token id:Id.Lit_Chars val:'\n' span_id:2232) (Token id:Id.Lit_Chars val:'\tmodified: sm\n' span_id:2233) (Token id:Id.Lit_Chars val:'\n' span_id:2234) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:2235) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 2236 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 2237 ) (Token id:Id.Lit_Chars val:'\n' span_id:2238) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:2239) (Token id:Id.Lit_Chars val:'\tmodified: sm (new commits)\n' span_id:2240) (Token id:Id.Lit_Chars val:'\n' span_id:2241) (Token id:Id.Lit_Chars val:'Submodule changes to be committed:\n' span_id:2242) (Token id:Id.Lit_Chars val:'\n' span_id:2243) (Token id:Id.Lit_Chars val:'* sm $head...$new_head (1):\n' span_id:2244) (Token id:Id.Lit_Chars val:' > Add bar\n' span_id:2245) (Token id:Id.Lit_Chars val:'\n' span_id:2246) (Token id:Id.Lit_Chars val:'Submodules changed but not updated:\n' span_id:2247) (Token id:Id.Lit_Chars val:'\n' span_id:2248) (Token id:Id.Lit_Chars val:'* sm $new_head...$head2 (1):\n' span_id:2249) (Token id:Id.Lit_Chars val:' > 2nd commit\n' span_id:2250) (Token id:Id.Lit_Chars val:'\n' span_id:2251) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:2252) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 2253 ) (Token id:Id.Lit_Chars val:'\n' span_id:2254) (Token id:Id.Lit_Chars val:'\t.gitmodules\n' span_id:2255) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:2256) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:2257) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:2258) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:2259) (Token id:Id.Lit_Chars val:'\n' span_id:2260) (Token id:Id.Lit_Chars val:'EOF\n' span_id:2261) (Token id: Id.Lit_Chars val: '\tgit status --ignore-submodules=untracked > output &&\n' span_id: 2262 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:2263) ) } ) (C {(test_expect_success)} {(DQ (".gitmodules ignore=untracked doesn't suppress submodule summary"))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2274) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore untracked &&\n' span_id: 2275 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2276 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2277) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2278) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2279 ) ) } ) (C {(test_expect_success)} {(DQ (".git/config ignore=untracked doesn't suppress submodule summary"))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2290) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore none &&\n' span_id: 2291 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2292 ) (Token id:Id.Lit_Chars val:'\tgit config --add submodule.subname.ignore untracked &&\n' span_id:2293) (Token id: Id.Lit_Chars val: '\tgit config --add submodule.subname.path sm &&\n' span_id: 2294 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2295) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2296) (Token id:Id.Lit_Chars val:'\tgit config --remove-section submodule.subname &&\n' span_id:2297) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2298 ) ) } ) (C {(test_expect_success)} {(DQ ("--ignore-submodules=dirty doesn't suppress submodule summary"))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2309) (Token id: Id.Lit_Chars val: '\tgit status --ignore-submodules=dirty > output &&\n' span_id: 2310 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:2311) ) } ) (C {(test_expect_success)} {(DQ (".gitmodules ignore=dirty doesn't suppress submodule summary"))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2321) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore dirty &&\n' span_id: 2322 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2323 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2324) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2325) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2326 ) ) } ) (C {(test_expect_success)} {(DQ (".git/config ignore=dirty doesn't suppress submodule summary"))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2337) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore none &&\n' span_id: 2338 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2339 ) (Token id:Id.Lit_Chars val:'\tgit config --add submodule.subname.ignore dirty &&\n' span_id:2340) (Token id: Id.Lit_Chars val: '\tgit config --add submodule.subname.path sm &&\n' span_id: 2341 ) (Token id:Id.Lit_Chars val:'\tgit status >output &&\n' span_id:2342) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2343) (Token id:Id.Lit_Chars val:'\tgit config --remove-section submodule.subname &&\n' span_id:2344) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2345 ) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:2351) fd: -1 arg_word: {(expect)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:2355) fd: -1 here_begin: {(EOF)} here_end_span_id: 2416 stdin_parts: [ ('; On branch master\n') ('; Changes to be committed:\n') ('; (use ') (Id.Right_DoubleQuote '"') ('git reset HEAD <file>...') (Id.Right_DoubleQuote '"') (' to unstage)\n') (';\n') (';\tmodified: sm\n') (';\n') ('; Changes not staged for commit:\n') ('; (use ') (Id.Right_DoubleQuote '"') ('git add <file>...') (Id.Right_DoubleQuote '"') (' to update what will be committed)\n') ('; (use ') (Id.Right_DoubleQuote '"') ('git checkout -- <file>...') (Id.Right_DoubleQuote '"') (' to discard changes in working directory)\n') (';\n') (';\tmodified: dir1/modified\n') (';\tmodified: sm (new commits)\n') (';\n') ('; Submodule changes to be committed:\n') (';\n') ('; * sm ') ($ Id.VSub_DollarName '$head') (...) ($ Id.VSub_DollarName '$new_head') (' (1):\n') ('; > Add bar\n') (';\n') ('; Submodules changed but not updated:\n') (';\n') ('; * sm ') ($ Id.VSub_DollarName '$new_head') (...) ($ Id.VSub_DollarName '$head2') (' (1):\n') ('; > 2nd commit\n') (';\n') ('; Untracked files:\n') ('; (use ') (Id.Right_DoubleQuote '"') ('git add <file>...') (Id.Right_DoubleQuote '"') (' to include in what will be committed)\n') (';\n') (';\t.gitmodules\n') (';\tdir1/untracked\n') (';\tdir2/modified\n') (';\tdir2/untracked\n') (';\tuntracked\n') (';\n') ] ) ] ) (C {(test_expect_success)} {(DQ ('status (core.commentchar with submodule summary)'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2425) (Token id: Id.Lit_Chars val: '\ttest_config core.commentchar ";" &&\n' span_id: 2426 ) (Token id: Id.Lit_Chars val: '\tgit -c status.displayCommentPrefix=true status >output &&\n' span_id: 2427 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:2428) ) } ) (C {(test_expect_success)} {(DQ ('status (core.commentchar with two chars with submodule summary)'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2439) (Token id: Id.Lit_Chars val: '\ttest_config core.commentchar ";;" &&\n' span_id: 2440 ) (Token id: Id.Lit_Chars val: '\ttest_must_fail git -c status.displayCommentPrefix=true status\n' span_id: 2441 ) ) } ) (C {(test_expect_success)} {(DQ ('--ignore-submodules=all suppresses submodule summary'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2452) (Token id:Id.Lit_Chars val:'\tcat > expect << EOF &&\n' span_id:2453) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:2454) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:2455) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 2456 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 2457 ) (Token id:Id.Lit_Chars val:'\n' span_id:2458) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:2459) (Token id:Id.Lit_Chars val:'\n' span_id:2460) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:2461) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 2462 ) (Token id:Id.Lit_Chars val:'\n' span_id:2463) (Token id:Id.Lit_Chars val:'\t.gitmodules\n' span_id:2464) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:2465) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:2466) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:2467) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:2468) (Token id:Id.Lit_Chars val:'\n' span_id:2469) (Token id: Id.Lit_Chars val: 'no changes added to commit (use "git add" and/or "git commit -a")\n' span_id: 2470 ) (Token id:Id.Lit_Chars val:'EOF\n' span_id:2471) (Token id: Id.Lit_Chars val: '\tgit status --ignore-submodules=all > output &&\n' span_id: 2472 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output\n' span_id:2473) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '.gitmodules ignore=all suppresses unstaged submodule summary' span_id: 2480 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2484) (Token id:Id.Lit_Chars val:'\tcat > expect << EOF &&\n' span_id:2485) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:2486) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:2487) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:2488) (Token id:Id.Lit_Chars val:'\n' span_id:2489) (Token id:Id.Lit_Chars val:'\tmodified: sm\n' span_id:2490) (Token id:Id.Lit_Chars val:'\n' span_id:2491) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:2492) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 2493 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 2494 ) (Token id:Id.Lit_Chars val:'\n' span_id:2495) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:2496) (Token id:Id.Lit_Chars val:'\n' span_id:2497) (Token id:Id.Lit_Chars val:'Untracked files:\n' span_id:2498) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to include in what will be committed)\n' span_id: 2499 ) (Token id:Id.Lit_Chars val:'\n' span_id:2500) (Token id:Id.Lit_Chars val:'\t.gitmodules\n' span_id:2501) (Token id:Id.Lit_Chars val:'\tdir1/untracked\n' span_id:2502) (Token id:Id.Lit_Chars val:'\tdir2/modified\n' span_id:2503) (Token id:Id.Lit_Chars val:'\tdir2/untracked\n' span_id:2504) (Token id:Id.Lit_Chars val:'\tuntracked\n' span_id:2505) (Token id:Id.Lit_Chars val:'\n' span_id:2506) (Token id:Id.Lit_Chars val:'EOF\n' span_id:2507) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore all &&\n' span_id: 2508 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2509 ) (Token id:Id.Lit_Chars val:'\tgit status > output &&\n' span_id:2510) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2511) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2512 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '.git/config ignore=all suppresses unstaged submodule summary' span_id: 2519 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2523) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore none &&\n' span_id: 2524 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2525 ) (Token id:Id.Lit_Chars val:'\tgit config --add submodule.subname.ignore all &&\n' span_id:2526) (Token id: Id.Lit_Chars val: '\tgit config --add submodule.subname.path sm &&\n' span_id: 2527 ) (Token id:Id.Lit_Chars val:'\tgit status > output &&\n' span_id:2528) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2529) (Token id:Id.Lit_Chars val:'\tgit config --remove-section submodule.subname &&\n' span_id:2530) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2531 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup of test environment' span_id:2538))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2542) (Token id: Id.Lit_Chars val: '\tgit config status.showUntrackedFiles no &&\n' span_id: 2543 ) (Token id:Id.Lit_Chars val:'\tgit status -s >expected_short &&\n' span_id:2544) (Token id: Id.Lit_Chars val: '\tgit status --no-short >expected_noshort\n' span_id: 2545 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"status.short=true" same as "-s"' span_id:2552))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2556) (Token id: Id.Lit_Chars val: '\tgit -c status.short=true status >actual &&\n' span_id: 2557 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_short actual\n' span_id:2558) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"status.short=true" weaker than "--no-short"' span_id:2565))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2569) (Token id: Id.Lit_Chars val: '\tgit -c status.short=true status --no-short >actual &&\n' span_id: 2570 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_noshort actual\n' span_id:2571) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"status.short=false" same as "--no-short"' span_id:2578))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2582) (Token id: Id.Lit_Chars val: '\tgit -c status.short=false status >actual &&\n' span_id: 2583 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_noshort actual\n' span_id:2584) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"status.short=false" weaker than "-s"' span_id:2591))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2595) (Token id: Id.Lit_Chars val: '\tgit -c status.short=false status -s >actual &&\n' span_id: 2596 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_short actual\n' span_id:2597) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"status.branch=true" same as "-b"' span_id:2604))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2608) (Token id:Id.Lit_Chars val:'\tgit status -sb >expected_branch &&\n' span_id:2609) (Token id:Id.Lit_Chars val:'\tgit -c status.branch=true status -s >actual &&\n' span_id:2610) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_branch actual\n' span_id:2611) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '"status.branch=true" different from "--no-branch"' span_id: 2618 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2622) (Token id: Id.Lit_Chars val: '\tgit status -s --no-branch >expected_nobranch &&\n' span_id: 2623 ) (Token id:Id.Lit_Chars val:'\tgit -c status.branch=true status -s >actual &&\n' span_id:2624) (Token id: Id.Lit_Chars val: '\ttest_must_fail test_cmp expected_nobranch actual\n' span_id: 2625 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"status.branch=true" weaker than "--no-branch"' span_id:2632))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2636) (Token id: Id.Lit_Chars val: '\tgit -c status.branch=true status -s --no-branch >actual &&\n' span_id: 2637 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_nobranch actual\n' span_id:2638) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"status.branch=true" weaker than "--porcelain"' span_id:2645))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2649) (Token id: Id.Lit_Chars val: ' git -c status.branch=true status --porcelain >actual &&\n' span_id: 2650 ) (Token id:Id.Lit_Chars val:' test_cmp expected_nobranch actual\n' span_id:2651) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"status.branch=false" same as "--no-branch"' span_id:2658))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2662) (Token id: Id.Lit_Chars val: '\tgit -c status.branch=false status -s >actual &&\n' span_id: 2663 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_nobranch actual\n' span_id:2664) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"status.branch=false" weaker than "-b"' span_id:2671))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2675) (Token id: Id.Lit_Chars val: '\tgit -c status.branch=false status -sb >actual &&\n' span_id: 2676 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected_branch actual\n' span_id:2677) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'Restore default test environment' span_id:2684))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2688) (Token id: Id.Lit_Chars val: '\tgit config --unset status.showUntrackedFiles\n' span_id: 2689 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'git commit will commit a staged but ignored submodule' span_id: 2696 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2700) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.ignore all &&\n' span_id: 2701 ) (Token id: Id.Lit_Chars val: '\tgit config --add -f .gitmodules submodule.subname.path sm &&\n' span_id: 2702 ) (Token id:Id.Lit_Chars val:'\tgit config --add submodule.subname.ignore all &&\n' span_id:2703) (Token id: Id.Lit_Chars val: '\tgit status -s --ignore-submodules=dirty >output &&\n' span_id: 2704 ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep "^M. sm" output &&\n' span_id:2705) (Token id: Id.Lit_Chars val: '\tGIT_EDITOR="echo hello >>\\"\\$1\\"" &&\n' span_id: 2706 ) (Token id:Id.Lit_Chars val:'\texport GIT_EDITOR &&\n' span_id:2707) (Token id:Id.Lit_Chars val:'\tgit commit -uno &&\n' span_id:2708) (Token id:Id.Lit_Chars val:'\tgit status -s --ignore-submodules=dirty >output &&\n' span_id:2709) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep ! "^M. sm" output\n' span_id:2710) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'git commit --dry-run will show a staged but ignored submodule' span_id: 2717 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2721) (Token id:Id.Lit_Chars val:'\tgit reset HEAD^ &&\n' span_id:2722) (Token id:Id.Lit_Chars val:'\tgit add sm &&\n' span_id:2723) (Token id:Id.Lit_Chars val:'\tcat >expect << EOF &&\n' span_id:2724) (Token id:Id.Lit_Chars val:'On branch master\n' span_id:2725) (Token id:Id.Lit_Chars val:'Changes to be committed:\n' span_id:2726) (Token id:Id.Lit_Chars val:' (use "git reset HEAD <file>..." to unstage)\n' span_id:2727) (Token id:Id.Lit_Chars val:'\n' span_id:2728) (Token id:Id.Lit_Chars val:'\tmodified: sm\n' span_id:2729) (Token id:Id.Lit_Chars val:'\n' span_id:2730) (Token id:Id.Lit_Chars val:'Changes not staged for commit:\n' span_id:2731) (Token id: Id.Lit_Chars val: ' (use "git add <file>..." to update what will be committed)\n' span_id: 2732 ) (Token id: Id.Lit_Chars val: ' (use "git checkout -- <file>..." to discard changes in working directory)\n' span_id: 2733 ) (Token id:Id.Lit_Chars val:'\n' span_id:2734) (Token id:Id.Lit_Chars val:'\tmodified: dir1/modified\n' span_id:2735) (Token id:Id.Lit_Chars val:'\n' span_id:2736) (Token id: Id.Lit_Chars val: 'Untracked files not listed (use -u option to show untracked files)\n' span_id: 2737 ) (Token id:Id.Lit_Chars val:'EOF\n' span_id:2738) (Token id: Id.Lit_Chars val: '\tgit commit -uno --dry-run >output &&\n' span_id: 2739 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect output &&\n' span_id:2740) (Token id: Id.Lit_Chars val: '\tgit status -s --ignore-submodules=dirty >output &&\n' span_id: 2741 ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep "^M. sm" output\n' span_id:2742) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'git commit -m will commit a staged but ignored submodule' span_id: 2749 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2753) (Token id:Id.Lit_Chars val:'\tgit commit -uno -m message &&\n' span_id:2754) (Token id:Id.Lit_Chars val:'\tgit status -s --ignore-submodules=dirty >output &&\n' span_id:2755) (Token id: Id.Lit_Chars val: '\t test_i18ngrep ! "^M. sm" output &&\n' span_id: 2756 ) (Token id:Id.Lit_Chars val:'\tgit config --remove-section submodule.subname &&\n' span_id:2757) (Token id: Id.Lit_Chars val: '\tgit config -f .gitmodules --remove-section submodule.subname\n' span_id: 2758 ) ) } ) (C {(test_done)}) ] )