(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:'rebase should handle arbitrary git message' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:17) fd:-1 arg_word:{(F)}) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:20) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:21)) (OF)} here_end_span_id: 29 stdin_parts: [ ('This is an example of a commit log message\n') ('that does not conform to git commit convention.\n') ('\n') ('It has two paragraphs, but its first paragraph is not friendly\n') ('to oneline summary format.\n') ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:33) fd:-1 arg_word:{(G)}) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:36) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:37)) (OF)} here_end_span_id: 41 stdin_parts: [('commit log message containing a diff\n')] ) ] ) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:49) (Token id:Id.Lit_Chars val:'\n' span_id:50) (Token id:Id.Lit_Chars val:'\t>file1 &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\t>file2 &&\n' span_id:52) (Token id:Id.Lit_Chars val:'\tgit add file1 file2 &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\tgit commit -m "Initial commit" &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\tgit branch diff-in-message &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\n' span_id:57) (Token id:Id.Lit_Chars val:'\tgit checkout -b multi-line-subject &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\tcat F >file2 &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\tgit add file2 &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\tgit commit -F F &&\n' span_id:62) (Token id:Id.Lit_Chars val:'\n' span_id:63) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD | sed -e "1,/^\\$/d" >F0 &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\n' span_id:65) (Token id:Id.Lit_Chars val:'\tgit checkout diff-in-message &&\n' span_id:66) (Token id: Id.Lit_Chars val: '\techo "commit log message containing a diff" >G &&\n' span_id: 67 ) (Token id:Id.Lit_Chars val:'\techo "" >>G &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\tcat G >file2 &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\tgit add file2 &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\tgit diff --cached >>G &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:72) (Token id:Id.Lit_Chars val:'\tgit commit -F G &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\n' span_id:74) (Token id: Id.Lit_Chars val: '\tgit cat-file commit HEAD | sed -e "1,/^\\$/d" >G0 &&\n' span_id: 75 ) (Token id:Id.Lit_Chars val:'\n' span_id:76) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\n' span_id:78) (Token id:Id.Lit_Chars val:'\techo One >file1 &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:80) (Token id:Id.Lit_Chars val:'\tgit add file1 &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\tgit commit -m "Second commit"\n' span_id:82) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rebase commit with multi-line subject' span_id:89))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:93) (Token id:Id.Lit_Chars val:'\n' span_id:94) (Token id: Id.Lit_Chars val: '\tgit rebase master multi-line-subject &&\n' span_id: 95 ) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD | sed -e "1,/^\\$/d" >F1 &&\n' span_id:96) (Token id:Id.Lit_Chars val:'\n' span_id:97) (Token id:Id.Lit_Chars val:'\ttest_cmp F0 F1 &&\n' span_id:98) (Token id:Id.Lit_Chars val:'\ttest_cmp F F0\n' span_id:99) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rebase commit with diff in message' span_id:106))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:110) (Token id: Id.Lit_Chars val: '\tgit rebase master diff-in-message &&\n' span_id: 111 ) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD | sed -e "1,/^$/d" >G1 &&\n' span_id:112) (Token id:Id.Lit_Chars val:'\ttest_cmp G0 G1 &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\ttest_cmp G G0\n' span_id:114) ) } ) (C {(test_done)}) ] )