(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:<Id.Redir_Great '>'> 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:<Id.Redir_Great '>'> 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:<Id.Redir_Great '>'> 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:<Id.Redir_Great '>'> 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:<Id.Redir_Great '>'> fd:-1 arg_word:{<pre-dry-run>})] ) (command.Simple words: [{<git>} {<diff-files>} {<-p>}] redirects: [(redir.Redir op:<Id.Redir_Great '>'> 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:<Id.Redir_Great '>'> fd:-1 arg_word:{<post-dry-run>})] ) (command.Simple words: [{<git>} {<diff-files>} {<-p>}] redirects: [(redir.Redir op:<Id.Redir_Great '>'> 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:<Id.Redir_Great '>'> fd:-1 arg_word:{<pre-dry-run>})] ) (command.Simple words: [{<git>} {<diff-files>} {<-p>}] redirects: [(redir.Redir op:<Id.Redir_Great '>'> 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:<Id.Redir_Great '>'> fd:-1 arg_word:{<post-dry-run>})] ) (command.Simple words: [{<git>} {<diff-files>} {<-p>}] redirects: [(redir.Redir op:<Id.Redir_Great '>'> 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 '$@'))}) ] ) ] ) ) ] )