(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 merge\n' span_id:6) (Token id:Id.Lit_Chars val:'\n' span_id:7) (Token id:Id.Lit_Chars val:'Testing octopus merge with more than 25 refs.' span_id:8) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:20))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:24) (Token id:Id.Lit_Chars val:'\techo c0 > c0.c &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\tgit add c0.c &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit commit -m c0 &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\tgit tag c0 &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\ti=1 &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\twhile test $i -le 30\n' span_id:30) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:31) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard c0 &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\t\techo c$i > c$i.c &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\t\tgit add c$i.c &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\t\tgit commit -m c$i &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\t\tgit tag c$i &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\t\ti=$(expr $i + 1) || return 1\n' span_id:37) (Token id:Id.Lit_Chars val:'\tdone\n' span_id:38) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge c1 with c2, c3, c4, ... c29' span_id:45))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:49) (Token id:Id.Lit_Chars val:'\tgit reset --hard c1 &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\ti=2 &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\trefs="" &&\n' span_id:52) (Token id:Id.Lit_Chars val:'\twhile test $i -le 30\n' span_id:53) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\trefs="$refs c$i"\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\ti=$(expr $i + 1)\n' span_id:56) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\tgit merge $refs &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\ttest "$(git rev-parse c1)" != "$(git rev-parse HEAD)" &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\ti=1 &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\twhile test $i -le 30\n' span_id:61) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:62) (Token id: Id.Lit_Chars val: '\t\ttest "$(git rev-parse c$i)" = "$(git rev-parse HEAD^$i)" &&\n' span_id: 63 ) (Token id:Id.Lit_Chars val:'\t\ti=$(expr $i + 1) || return 1\n' span_id:64) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\ti=1 &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\twhile test $i -le 30\n' span_id:68) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:69) (Token id:Id.Lit_Chars val:'\t\ttest -f c$i.c &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\t\ti=$(expr $i + 1) || return 1\n' span_id:71) (Token id:Id.Lit_Chars val:'\tdone\n' span_id:72) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:78) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:81) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:82)) (OF)} here_end_span_id: 96 stdin_parts: [ ('Trying simple merge with c2\n') ('Trying simple merge with c3\n') ('Trying simple merge with c4\n') ("Merge made by the 'octopus' strategy.\n") (' c2.c | 1 +\n') (' c3.c | 1 +\n') (' c4.c | 1 +\n') (' 3 files changed, 3 insertions(+)\n') (' create mode 100644 c2.c\n') (' create mode 100644 c3.c\n') (' create mode 100644 c4.c\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge output uses pretty names' span_id:101))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:105) (Token id:Id.Lit_Chars val:'\tgit reset --hard c1 &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\tgit merge c2 c3 c4 >actual &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expected actual\n' span_id:108) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:114) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:117) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:118)) (OF) } here_end_span_id: 125 stdin_parts: [ ("Merge made by the 'recursive' strategy.\n") (' c5.c | 1 +\n') (' 1 file changed, 1 insertion(+)\n') (' create mode 100644 c5.c\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge reduces irrelevant remote heads' span_id:130))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:134) (Token id: Id.Lit_Chars val: '\tGIT_MERGE_VERBOSITY=0 git merge c4 c5 >actual &&\n' span_id: 135 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expected actual\n' span_id:136) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:142) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:145) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:146)) (OF) } here_end_span_id: 157 stdin_parts: [ ('Fast-forwarding to: c1\n') ('Trying simple merge with c2\n') ("Merge made by the 'octopus' strategy.\n") (' c1.c | 1 +\n') (' c2.c | 1 +\n') (' 2 files changed, 2 insertions(+)\n') (' create mode 100644 c1.c\n') (' create mode 100644 c2.c\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge fast-forward output uses pretty names' span_id:162))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:166) (Token id:Id.Lit_Chars val:'\tgit reset --hard c0 &&\n' span_id:167) (Token id:Id.Lit_Chars val:'\tgit merge c1 c2 >actual &&\n' span_id:168) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expected actual\n' span_id:169) ) } ) (C {(test_done)}) ] )