(command.CommandList children: [ (command.ShFunction name: read_tree_must_succeed body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{(git)} {(ls-files)} {(-s)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:26) fd: -1 arg_word: {(pre-dry-run)} ) ] ) (C {(git)} {(read-tree)} {(-n)} {(DQ ($ Id.VSub_At '$@'))}) (command.Simple words: [{(git)} {(ls-files)} {(-s)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:51) fd: -1 arg_word: {(post-dry-run)} ) ] ) (C {(test_cmp)} {(pre-dry-run)} {(post-dry-run)}) (C {(git)} {(read-tree)} {(DQ ($ Id.VSub_At '$@'))}) ] ) ] ) ) (command.ShFunction name: read_tree_must_fail body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{(git)} {(ls-files)} {(-s)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:91) fd: -1 arg_word: {(pre-dry-run)} ) ] ) (C {(test_must_fail)} {(git)} {(read-tree)} {(-n)} {(DQ ($ Id.VSub_At '$@'))}) (command.Simple words: [{(git)} {(ls-files)} {(-s)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:118) fd: -1 arg_word: {(post-dry-run)} ) ] ) (C {(test_cmp)} {(pre-dry-run)} {(post-dry-run)}) (C {(test_must_fail)} {(git)} {(read-tree)} {(DQ ($ Id.VSub_At '$@'))}) ] ) ] ) ) (command.ShFunction name: read_tree_u_must_succeed body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{(git)} {(ls-files)} {(-s)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:160) fd: -1 arg_word: {(pre-dry-run)} ) ] ) (command.Simple words: [{(git)} {(diff-files)} {(-p)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:172) fd: -1 arg_word: {(pre-dry-run-wt)} ) ] ) (C {(git)} {(read-tree)} {(-n)} {(DQ ($ Id.VSub_At '$@'))}) (command.Simple words: [{(git)} {(ls-files)} {(-s)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:197) fd: -1 arg_word: {(post-dry-run)} ) ] ) (command.Simple words: [{(git)} {(diff-files)} {(-p)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:209) fd: -1 arg_word: {(post-dry-run-wt)} ) ] ) (C {(test_cmp)} {(pre-dry-run)} {(post-dry-run)}) (C {(test_cmp)} {(pre-dry-run-wt)} {(post-dry-run-wt)}) (C {(git)} {(read-tree)} {(DQ ($ Id.VSub_At '$@'))}) ] ) ] ) ) (command.ShFunction name: read_tree_u_must_fail body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{(git)} {(ls-files)} {(-s)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:258) fd: -1 arg_word: {(pre-dry-run)} ) ] ) (command.Simple words: [{(git)} {(diff-files)} {(-p)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:270) fd: -1 arg_word: {(pre-dry-run-wt)} ) ] ) (C {(test_must_fail)} {(git)} {(read-tree)} {(-n)} {(DQ ($ Id.VSub_At '$@'))}) (command.Simple words: [{(git)} {(ls-files)} {(-s)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:297) fd: -1 arg_word: {(post-dry-run)} ) ] ) (command.Simple words: [{(git)} {(diff-files)} {(-p)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:309) fd: -1 arg_word: {(post-dry-run-wt)} ) ] ) (C {(test_cmp)} {(pre-dry-run)} {(post-dry-run)}) (C {(test_cmp)} {(pre-dry-run-wt)} {(post-dry-run-wt)}) (C {(test_must_fail)} {(git)} {(read-tree)} {(DQ ($ Id.VSub_At '$@'))}) ] ) ] ) ) ] )