(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description) op: Equal rhs: {(SQ <'revert can handle submodules'>)} ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ VSub_DollarName '$TEST_DIRECTORY')) (/lib-submodule-update.sh)}) (command.FuncDef name: git_revert body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp] children: [ (command.SimpleCommand words: [{(git)} {(status)} {(-su)}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect)})] ) (command.SimpleCommand words: [{(ls)} {(-1pR)} {(Lit_Other '*')}] redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(expect)})] ) (C {(tar)} {(cf)} {(DQ ($ VSub_DollarName '$TRASH_DIRECTORY') (/tmp.tar))} {(Lit_Other '*')} ) (C {(git)} {(checkout)} {(DQ ($ VSub_Number '$1'))}) (C {(git)} {(revert)} {(HEAD)}) (C {(rm)} {(-rf)} {(Lit_Other '*')}) (C {(tar)} {(xf)} {(DQ ($ VSub_DollarName '$TRASH_DIRECTORY') (/tmp.tar))}) (command.SimpleCommand words: [{(git)} {(status)} {(-su)}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(actual)})] ) (command.SimpleCommand words: [{(ls)} {(-1pR)} {(Lit_Other '*')}] redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(actual)})] ) (C {(test_cmp)} {(expect)} {(actual)}) (C {(git)} {(revert)} {(HEAD)}) ] ) ] ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT) op: Equal rhs: {(1)} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR) op: Equal rhs: {(1)} ) ] ) (C {(test_submodule_switch)} {(DQ (git_revert))}) (C {(test_done)}) ] )