(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'prec='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'prec='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prec='> name:prec) op: assign_op.Equal rhs: {<4>} ) ] redirects: [] ) (command.ShFunction name_tok: <read_state> name: read_state body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'onto_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'onto_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'onto_name='> name:onto_name) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ ($ Id.VSub_DollarName state_dir)) <'/onto_name'>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'end='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'end='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'end='> name:end) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ ($ Id.VSub_DollarName state_dir)) <'/end'>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'msgnum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'msgnum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msgnum='> name:msgnum) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ ($ Id.VSub_DollarName state_dir)) <'/msgnum'>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <continue_merge> name: continue_merge body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-d>} {(DQ ($ Id.VSub_DollarName state_dir))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ ($ Id.VSub_DollarName state_dir) <' directory does not exist'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'unmerged='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'unmerged='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'unmerged='> name:unmerged) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<ls-files>} {<-u>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName unmerged))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'You still have unmerged paths in your index'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'did you forget to use git add?'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ ($ Id.VSub_DollarName resolvemsg))}] redirects: [] do_fork: T ) ] spids: [107 118] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'cmt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cmt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmt='> name:cmt) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ ($ Id.VSub_DollarName state_dir) <'/current'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<diff-index>} {<--quiet>} {<--ignore-submodules>} {<HEAD>} {<-->} ] redirects: [] do_fork: T ) ] ops: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<commit>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name gpg_sign_opt> var_name: gpg_sign_opt suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {(DQ ($ Id.VSub_DollarName gpg_sign_opt))} ) right: <Id.Right_DollarBrace '}'> ) } {<--no-verify>} {<-C>} {(DQ ($ Id.VSub_DollarName cmt))} ] redirects: [] do_fork: T ) ] ops: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Commit failed, please do not call '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'git commit'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'directly, but instead do one of the following: '>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ ($ Id.VSub_DollarName resolvemsg))}] redirects: [] do_fork: T ) ] spids: [177 202] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName GIT_QUIET))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(DQ <'Committed: %0'> (${ Id.VSub_Name prec) <'d '>)} {($ Id.VSub_DollarName msgnum)} ] redirects: [] do_fork: T ) ] spids: [232 243] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName cmt) <' '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rev-parse>} {<HEAD> <Id.Lit_Other '^'> <0>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName state_dir) <'/rewritten'>)} ) ] do_fork: T ) ] spids: [157 174] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName GIT_QUIET))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(DQ <'Already applied: %0'> (${ Id.VSub_Name prec) <'d '>)} {($ Id.VSub_DollarName msgnum)} ] redirects: [] do_fork: T ) ] spids: [289 300] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName GIT_QUIET))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [(EnvPair left:<Id.Lit_VarLike 'GIT_PAGER='> name:GIT_PAGER val:{(SQ )})] words: [ {<git>} {<log>} {<--format> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <s>} {<-1>} {(DQ ($ Id.VSub_DollarName cmt))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'msgnum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'msgnum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msgnum='> name:msgnum) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName msgnum)} right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName msgnum))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName state_dir) <'/msgnum'>)} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <call_merge> name: call_merge body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'msgnum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'msgnum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msgnum='> name:msgnum) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName msgnum))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName state_dir) <'/msgnum'>)} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'cmt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cmt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmt='> name:cmt) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} { (DQ ($ Id.VSub_DollarName state_dir) <'/cmt.'> ($ Id.VSub_DollarName msgnum) ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName cmt))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName state_dir) <'/current'>)} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'hd='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'hd='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hd='> name:hd) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rev-parse>} {<--verify>} {<HEAD>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'cmt_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cmt_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmt_name='> name:cmt_name) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<symbolic-ref>} {<HEAD>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<HEAD>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<GITHEAD_> ($ Id.VSub_DollarName cmt) <Id.Lit_Equals '='> (SQ <'"${cmt_name##refs/heads/}~$(($end - $msgnum))"'>) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<GITHEAD_> ($ Id.VSub_DollarName hd) <Id.Lit_Equals '='> (SQ <'$onto_name'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [ {<export>} {<GITHEAD_> ($ Id.VSub_DollarName cmt)} {<GITHEAD_> ($ Id.VSub_DollarName hd)} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GIT_QUIET))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'GIT_MERGE_VERBOSITY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GIT_MERGE_VERBOSITY='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'GIT_MERGE_VERBOSITY='> name: GIT_MERGE_VERBOSITY ) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<GIT_MERGE_VERBOSITY>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] spids: [500 511] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName strategy))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'strategy='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'strategy='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'strategy='> name:strategy) op: assign_op.Equal rhs: {<recursive>} ) ] redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'base='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'base='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--verify>} {<--quiet>} {($ Id.VSub_DollarName cmt) <Id.Lit_Other '^'>} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {(SQ <'git-merge-$strategy'>)} {($ Id.VSub_DollarName strategy_opts)} {($ Id.VSub_DollarName base)} {(SQ <' -- "$hd" "$cmt"'>)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'rv='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'rv='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rv='> name:rv) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName rv))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <unset> more_env: [] words: [ {<unset>} {<GITHEAD_> ($ Id.VSub_DollarName cmt)} {<GITHEAD_> ($ Id.VSub_DollarName hd)} ] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Return return>) ] right: <Id.Op_DSemi _> ) (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rerere>} {($ Id.VSub_DollarName allow_rerere_autoupdate)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ ($ Id.VSub_DollarName resolvemsg))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <2> pattern: (pat.Words words:[{<2>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Strategy: '> ($ Id.VSub_DollarName strategy) <' failed, try another'>)} ] redirects: [ (Redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ ($ Id.VSub_DollarName resolvemsg))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} {(DQ <'Unknown exit code ('> ($ Id.VSub_DollarName rv) <') from command:'>)} { (DQ <git-merge-> ($ Id.VSub_DollarName strategy) <' '> ($ Id.VSub_DollarName cmt) <'^ -- HEAD '> ($ Id.VSub_DollarName cmt) ) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <finish_rb_merge> name: finish_rb_merge body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <move_to_original_branch> more_env: [] words: [{<move_to_original_branch>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-s>} {(DQ ($ Id.VSub_DollarName state_dir)) <'/rewritten'>}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<notes>} {<copy>} {<--for-rewrite> <Id.Lit_Equals '='> <rebase>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName state_dir)) <'/rewritten'>} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'hook='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'hook='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hook='> name:hook) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--git-path>} {<'hooks/post-rewrite'>} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-x>} {(DQ ($ Id.VSub_DollarName hook))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ ($ Id.VSub_DollarName hook))} {<rebase>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName state_dir)) <'/rewritten'>} ) ] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] spids: [697 709] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <say> more_env: [] words: [{<say>} {<All>} {<done.>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <git_rebase__merge> name: git_rebase__merge body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName action))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.ControlFlow_Continue continue> pattern: (pat.Words words:[{<Id.ControlFlow_Continue continue>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <read_state> more_env: [] words: [{<read_state>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <continue_merge> more_env: [] words: [{<continue_merge>}] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName msgnum))} {<-le>} {(DQ ($ Id.VSub_DollarName end))} ] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <call_merge> more_env: [] words: [{<call_merge>} {(DQ ($ Id.VSub_DollarName msgnum))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <continue_merge> more_env: [] words: [{<continue_merge>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <finish_rb_merge> more_env: [] words: [{<finish_rb_merge>}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Return return>) ] right: <Id.Op_DSemi _> ) (CaseArm left: <skip> pattern: (pat.Words words:[{<skip>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <read_state> more_env: [] words: [{<read_state>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rerere>} {<clear>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'msgnum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'msgnum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msgnum='> name:msgnum) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName msgnum)} right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName msgnum))} {<-le>} {(DQ ($ Id.VSub_DollarName end))} ] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <call_merge> more_env: [] words: [{<call_merge>} {(DQ ($ Id.VSub_DollarName msgnum))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <continue_merge> more_env: [] words: [{<continue_merge>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <finish_rb_merge> more_env: [] words: [{<finish_rb_merge>}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Return return>) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName state_dir))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName onto_name))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName state_dir) <'/onto_name'>)} ) ] do_fork: T ) (command.Simple blame_tok: <write_basic_state> more_env: [] words: [{<write_basic_state>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'msgnum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'msgnum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msgnum='> name:msgnum) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [cmt] iterable: (for_iter.Words words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-list>} {<--reverse>} {<--no-merges>} {(DQ ($ Id.VSub_DollarName revisions))} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'msgnum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'msgnum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msgnum='> name:msgnum) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName msgnum)} right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName cmt))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: { (DQ ($ Id.VSub_DollarName state_dir) <'/cmt.'> ($ Id.VSub_DollarName msgnum) ) } ) ] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<1>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName state_dir) <'/msgnum'>)} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName msgnum)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName state_dir) <'/end'>)} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'end='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'end='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'end='> name:end) op: assign_op.Equal rhs: {($ Id.VSub_DollarName msgnum)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'msgnum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'msgnum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msgnum='> name:msgnum) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName msgnum))} {<-le>} {(DQ ($ Id.VSub_DollarName end))} ] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <call_merge> more_env: [] words: [{<call_merge>} {(DQ ($ Id.VSub_DollarName msgnum))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <continue_merge> more_env: [] words: [{<continue_merge>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <finish_rb_merge> more_env: [] words: [{<finish_rb_merge>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <git_rebase__merge> more_env: [] words: [{<git_rebase__merge>}] redirects: [] do_fork: T ) ] )