(command.CommandList children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:todo) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/git-rebase-todo)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:done) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/done)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:msg) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/message)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:squash_msg) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/message-squash)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fixup_msg) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/message-fixup)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rewritten) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/rewritten)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dropped) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/dropped)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:end) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/end)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:msgnum) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/msgnum)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:author_script) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/author-script)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:amend) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/amend)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rewritten_list) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/rewritten-list)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rewritten_pending) op: Equal rhs: {(DQ ($ VSub_DollarName '$state_dir')) (/rewritten-pending)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cr) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(printf)} {(DQ (Lit_Other '\\') (015))})] ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:strategy_args) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name strategy> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: {('--strategy=') ($ VSub_DollarName '$strategy')} ) ) } ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$strategy_opts'))}) (C {(eval)} {(SQ <'\n'> <'\tfor strategy_opt in '>) (DQ ($ VSub_DollarName '$strategy_opts')) (SQ <'\n'> <'\tdo\n'> < '\t\tstrategy_args="$strategy_args -X$(git rev-parse --sq-quote "${strategy_opt#--}")"\n' > <'\tdone\n'> ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_CHERRY_PICK_HELP) op: Equal rhs: {(DQ ($ VSub_DollarName '$resolvemsg'))} ) ] ) (C {(export)} {(GIT_CHERRY_PICK_HELP)}) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:comment_char) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [{(git)} {(config)} {(--get)} {(core.commentchar)}] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) (C {(cut)} {(-c1)}) ] negated: F ) ] ) ) } ) ] ) (C {(Lit_Other ':')} { (word_part.BracedVarSub token: <VSub_Name comment_char> suffix_op: (suffix_op.Unary op_id:VTest_ColonEquals arg_word:{(Lit_Pound '#')}) ) } ) (command.FuncDef name: warn body: (command.BraceGroup children: [ (command.Simple words: [{(printf)} {(SQ <'%s\\n'>)} {(DQ ($ VSub_Star '$*'))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) ] ) ) (command.FuncDef name: commit_message body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(git)} {(cat-file)} {(commit)} {(DQ ($ VSub_Number '$1'))}) (C {(sed)} {(DQ ('1,/^') (Lit_Other '$') (/d))}) ] negated: F ) ] ) ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:orig_reflog_action) op: Equal rhs: {(DQ ($ VSub_DollarName '$GIT_REFLOG_ACTION'))} ) ] ) (command.FuncDef name: comment_for_reflog body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$orig_reflog_action'))} arms: [ (case_arm pat_list: [{(SQ )} {(rebase) (Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_REFLOG_ACTION) op: Equal rhs: {(DQ ('rebase -i (') ($ VSub_Number '$1') (')'))} ) ] ) (C {(export)} {(GIT_REFLOG_ACTION)}) ] ) ] ) ] ) ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:last_count) op:Equal rhs:(word.Empty))] ) (command.FuncDef name: mark_action_done body: (command.BraceGroup children: [ (command.Simple words: [{(sed)} {(-e)} {(1q)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$done'))} ) ] ) (command.Simple words: [{(sed)} {(-e)} {(1d)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo')) (.new)} ) ] ) (C {(mv)} {(-f)} {(DQ ($ VSub_DollarName '$todo')) (.new)} {(DQ ($ VSub_DollarName '$todo'))}) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:new_count) op: Equal rhs: { (word_part.ArithSub anode: (arith_expr.ArithWord w: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [{(git)} {(stripspace)} {(--strip-comments)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$done'))} ) ] ) (C {(wc)} {(-l)}) ] negated: F ) ] ) ) } ) ) } ) ] ) (command.Simple words: [{(echo)} {($ VSub_DollarName '$new_count')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$msgnum'))} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:total) op: Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Arith_Plus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$new_count')}) right: (arith_expr.ArithWord w: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [{(git)} {(stripspace)} {(--strip-comments)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) (C {(wc)} {(-l)}) ] negated: F ) ] ) ) } ) ) ) } ) ] ) (command.Simple words: [{(echo)} {($ VSub_DollarName '$total')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$end'))} ) ] ) (command.If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_DollarName '$last_count'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$new_count'))} ) ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:last_count) op: Equal rhs: {($ VSub_DollarName '$new_count')} ) ] ) (command.Sentence child: (C {(eval_gettext)} { (DQ ('Rebasing (') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) (new_count/) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('total)') ) } ) terminator: <Op_Semi ';'> ) (C {(printf)} {(DQ (Lit_Other '\\') (r))}) (command.AndOr ops: [Op_DPipe] children: [(C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$verbose'))}) (C {(echo)})] ) ] ) ] ) ] ) ) (command.FuncDef name: reschedule_last_action body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(tail)} {(-n)} {(1)} {(DQ ($ VSub_DollarName '$done'))}) (command.Simple words: [{(cat)} {(-)} {(DQ ($ VSub_DollarName '$todo'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo')) (.new)} ) ] ) ] negated: F ) (command.Simple words: [{(sed)} {(-e)} {(word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) (d)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$done'))} ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$done')) (.new)} ) ] ) (C {(mv)} {(-f)} {(DQ ($ VSub_DollarName '$todo')) (.new)} {(DQ ($ VSub_DollarName '$todo'))}) (C {(mv)} {(-f)} {(DQ ($ VSub_DollarName '$done')) (.new)} {(DQ ($ VSub_DollarName '$done'))}) ] ) ) (command.FuncDef name: append_todo_help body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(gettext)} { (DQ ('\n') ('Commands:\n') (' p, pick = use commit\n') (' r, reword = use commit, but edit the commit message\n') (' e, edit = use commit, but stop for amending\n') (' s, squash = use commit, but meld into previous commit\n') (' f, fixup = like ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) (squash) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) (", but discard this commit's log message\n") (' x, exec = run command (the rest of the line) using shell\n') (' d, drop = remove commit\n') ('\n') ('These lines can be re-ordered; they are executed from top to bottom.\n') ) } ) (command.Simple words: [{(git)} {(stripspace)} {(--comment-lines)}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) ] negated: F ) (command.If arms: [ (if_arm cond: [ (C {(test)} { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(get_missing_commit_check_level)})] ) ) } {(Lit_Other '=')} {(error)} ) ] action: [ (command.Pipeline children: [ (C {(gettext)} { (DQ ('\n') ( "Do not remove any line. Use 'drop' explicitly to remove a commit.\n" ) ) } ) (command.Simple words: [{(git)} {(stripspace)} {(--comment-lines)}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) ] negated: F ) ] ) ] else_action: [ (command.Pipeline children: [ (C {(gettext)} {(DQ ('\n') ('If you remove a line here THAT COMMIT WILL BE LOST.\n'))} ) (command.Simple words: [{(git)} {(stripspace)} {(--comment-lines)}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) ] negated: F ) ] ) ] ) ) (command.FuncDef name: make_patch body: (command.BraceGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1_and_parents) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-list)} {(--parents)} {(-1)} {(DQ ($ VSub_Number '$1'))}) ] ) ) ) } ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$sha1_and_parents'))} arms: [ (case_arm pat_list: [ {(Lit_QMark '?') (Lit_Star '*') (SQ <' '>) (Lit_QMark '?') (Lit_Star '*') (SQ <' '>) (Lit_QMark '?') (Lit_Star '*') } ] action: [(C {(git)} {(diff)} {(--cc)} {($ VSub_DollarName '$sha1_and_parents')})] ) (case_arm pat_list: [ {(Lit_QMark '?') (Lit_Star '*') (SQ <' '>) (Lit_QMark '?') (Lit_Star '*')} ] action: [(C {(git)} {(diff-tree)} {(-p)} {(DQ ($ VSub_Number '$1') ('^!'))})] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [(C {(echo)} {(DQ ('Root commit'))})] ) ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$state_dir')) (/patch)} ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$msg'))}) (command.Simple words: [{(commit_message)} {(DQ ($ VSub_Number '$1'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$msg'))} ) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$author_script'))}) (command.Simple words: [{(get_author_ident_from_commit)} {(DQ ($ VSub_Number '$1'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$author_script'))} ) ] ) ] ) ] ) ) (command.FuncDef name: die_with_patch body: (command.BraceGroup children: [ (command.Simple words: [{(echo)} {(DQ ($ VSub_Number '$1'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$state_dir')) (/stopped-sha)} ) ] ) (C {(make_patch)} {(DQ ($ VSub_Number '$1'))}) (C {(die)} {(DQ ($ VSub_Number '$2'))}) ] ) ) (command.FuncDef name: exit_with_patch body: (command.BraceGroup children: [ (command.Simple words: [{(echo)} {(DQ ($ VSub_Number '$1'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$state_dir')) (/stopped-sha)} ) ] ) (C {(make_patch)} {($ VSub_Number '$1')}) (command.Simple words: [{(git)} {(rev-parse)} {(--verify)} {(HEAD)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$amend'))} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:gpg_sign_opt_quoted) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--sq-quote)} {(DQ ($ VSub_DollarName '$gpg_sign_opt'))} ) ] ) ) } ) ) } ) ] ) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('You can amend the commit now, with\n') ('\n') ('\tgit commit --amend ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('gpg_sign_opt_quoted\n') ('\n') ('Once you are satisfied with your changes, run\n') ('\n') ('\tgit rebase --continue') ) } ) ] ) ) ) } ) (C {(warn)}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_Number '$2')} ) ] ) ) (command.FuncDef name: die_abort body: (command.BraceGroup children: [ (C {(apply_autostash)}) (C {(rm)} {(-rf)} {(DQ ($ VSub_DollarName '$state_dir'))}) (C {(die)} {(DQ ($ VSub_Number '$1'))}) ] ) ) (command.FuncDef name: has_action body: (command.BraceGroup children: [ (C {(test)} {(-n)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [{(git)} {(stripspace)} {(--strip-comments)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) ] ) ) ) } ) ] ) ) (command.FuncDef name: is_empty_commit body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tree) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(rev-parse)} {(-q)} {(--verify)} {(DQ ($ VSub_Number '$1')) (Lit_Other '^') (Lit_LBrace '{') (tree) (Lit_RBrace '}') } ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ) ] ) (command.BraceGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('sha1: not a commit that can be picked') ) } ) ] ) ) ) } ) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ptree) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(rev-parse)} {(-q)} {(--verify)} {(DQ ($ VSub_Number '$1')) (Lit_Other '^') (Lit_Other '^') (Lit_LBrace '{') (tree) (Lit_RBrace '}') } ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ptree) op: Equal rhs: {(4b825dc642cb6eb9a060e54bf8d69288fbee4904)} ) ] ) ] ) (C {(test)} {(DQ ($ VSub_DollarName '$tree'))} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$ptree'))} ) ] ) ) (command.FuncDef name: is_merge_commit body: (command.BraceGroup children: [ (command.Simple words: [ {(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(DQ ($ VSub_Number '$1')) (Lit_Other '^') (2)} ] redirects: [ (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)}) (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)}) ] ) ] ) ) (command.FuncDef name: do_with_author body: (command.BraceGroup children: [ (command.Subshell command_list: (command.CommandList children: [ (C {(export)} {(GIT_AUTHOR_NAME)} {(GIT_AUTHOR_EMAIL)} {(GIT_AUTHOR_DATE)}) (C {(DQ ($ VSub_At '$@'))}) ] ) ) ] ) ) (command.FuncDef name: git_sequence_editor body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$GIT_SEQUENCE_EDITOR'))})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_SEQUENCE_EDITOR) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(config)} {(sequence.editor)})] ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Lit_LBracket '[')} {(-z)} {(DQ ($ VSub_DollarName '$GIT_SEQUENCE_EDITOR'))} {(Lit_RBracket ']')} ) ] action: [ (command.AndOr ops: [Op_DPipe] children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_SEQUENCE_EDITOR) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(KW_Var var)} {(GIT_EDITOR)})] ) ) ) } ) ] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_QMark '$?')} ) ] ) ] ) ] ) ] ) ] ) (C {(eval)} {(DQ ($ VSub_DollarName '$GIT_SEQUENCE_EDITOR'))} {(SQ <'"$@"'>)}) ] ) ) (command.FuncDef name: pick_one body: (command.BraceGroup children: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:ff) op:Equal rhs:{(--ff)})] ) (command.Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(-n)}] action: [ (command.Sentence child: (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: {($ VSub_Number '$2')} ) ] ) terminator: <Op_Semi ';'> ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:ff) op:Equal rhs:(word.Empty))] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) ] ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$force_rebase'))} arms: [ (case_arm pat_list:[{(SQ )}]) (case_arm pat_list: [{(Lit_QMark '?') (Lit_Star '*')}] action: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:ff) op:Equal rhs:(word.Empty))] ) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(output)} {(git)} {(rev-parse)} {(--verify)} {($ VSub_DollarName '$sha1')}) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Invalid commit name: ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (sha1) ) } ) ] ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [(C {(is_empty_commit)} {(DQ ($ VSub_DollarName '$sha1'))})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:empty_args) op: Equal rhs: {(DQ (--allow-empty))} ) ] ) ] ) ] ) (command.AndOr ops: [Op_DAmp Op_DAmp] children: [ (C {(test)} {(-d)} {(DQ ($ VSub_DollarName '$rewritten'))}) (C {(pick_one_preserving_merges)} {(DQ ($ VSub_At '$@'))}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (C {(output)} {(eval)} {(git)} {(cherry-pick)} { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--sq-quote)} {(DQ ($ VSub_DollarName '$gpg_sign_opt'))} ) ] ) ) } ) ) } {(DQ ($ VSub_DollarName '$strategy_args'))} {($ VSub_DollarName '$empty_args')} {($ VSub_DollarName '$ff')} {(DQ ($ VSub_At '$@'))} ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:ret) op:Equal rhs:{($ VSub_QMark '$?')})] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$ret'))} arms: [ (case_arm pat_list:[{(Lit_LBracket '[') (01) (Lit_RBracket ']')}]) (case_arm pat_list: [{(Lit_Star '*')}] action: [(C {(reschedule_last_action)})] ) ] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_DollarName '$ret')} ) ] ) ) (command.FuncDef name: pick_one_preserving_merges body: (command.BraceGroup children: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:fast_forward) op:Equal rhs:{(t)})] ) (command.Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(-n)}] action: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:fast_forward) op:Equal rhs:{(f)})] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: {($ VSub_Number '$2')} ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) ] ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(rev-parse)} {($ VSub_DollarName '$sha1')})] ) ) } ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$state_dir')) (/current-commit)})] action: [ (command.If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_DollarName '$fast_forward'))} {(Lit_Other '=')} {(t)} ) ] action: [ (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(current_commit)})] body: (command.DoGroup children: [ (command.Simple words: [{(git)} {(rev-parse)} {(HEAD)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$rewritten')) (/) ($ VSub_DollarName '$current_commit') } ) ] ) ] ) redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$state_dir')) (/current-commit)} ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(rm)} {(DQ ($ VSub_DollarName '$state_dir')) (/current-commit)}) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ( "Cannot write current commit's replacement sha1" ) ) } ) ] ) ) ) } ) ] ) ] ) ] ) ] ) ] ) (command.Simple words: [{(echo)} {($ VSub_DollarName '$sha1')}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$state_dir')) (/current-commit)} ) ] ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:new_parents) op:Equal rhs:(word.Empty))] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pend) op: Equal rhs: { (DQ (' ') (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(git)} {(rev-list)} {(--parents)} {(-1)} {($ VSub_DollarName '$sha1')} ) (C {(cut)} {(-d) (SQ <' '>)} {(-s)} {(-f2-)}) ] negated: F ) ] ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_DollarName '$pend'))} {(Lit_Other '=')} {(DQ (' '))})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pend) op: Equal rhs: {(DQ (' root'))} ) ] ) ] ) ] ) (command.WhileUntil keyword: <KW_While while> cond: [ (C {(Lit_LBracket '[')} {(DQ ($ VSub_DollarName '$pend'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_RBracket ']')} ) ] body: (command.DoGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:p) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(expr)} {(DQ ($ VSub_DollarName '$pend'))} {(Lit_Other ':')} {(SQ <' \\([^ ]*\\)'>)} ) ] ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pend) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name pend> suffix_op: (suffix_op.Unary op_id: VOp1_Pound arg_word: {(' ') ($ VSub_DollarName '$p')} ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$rewritten')) (/) ($ VSub_DollarName '$p')} ) ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:new_p) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(cat)} {(DQ ($ VSub_DollarName '$rewritten')) (/) ($ VSub_DollarName '$p') } ) ] ) ) } ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$new_p'))})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:new_p) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(rev-parse)} {(HEAD)})] ) ) } ) ] ) ] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {($ VSub_DollarName '$p')} {(KW_Bang '!') (Lit_Other '=')} {($ VSub_DollarName '$new_p')} ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fast_forward) op: Equal rhs: {(f)} ) ] ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$new_parents'))} arms: [ (case_arm pat_list: [ {(Lit_Star '*') ($ VSub_DollarName '$new_p') (Lit_Star '*')} ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:new_parents) op: Equal rhs: { (DQ ($ VSub_DollarName '$new_parents') (' ') ($ VSub_DollarName '$new_p') ) } ) ] ) ] ) ] ) ] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$dropped')) (/) ($ VSub_DollarName '$p')} ) ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fast_forward) op: Equal rhs: {(f)} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:replacement) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(cat)} {(DQ ($ VSub_DollarName '$dropped')) (/) ($ VSub_DollarName '$p') } ) ] ) ) ) } ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$replacement'))}) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:replacement) op: Equal rhs: {(root)} ) ] ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pend) op: Equal rhs: { (DQ (' ') ($ VSub_DollarName '$replacement') ($ VSub_DollarName '$pend') ) } ) ] ) ] ) ] else_action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:new_parents) op: Equal rhs: { (DQ ($ VSub_DollarName '$new_parents') (' ') ($ VSub_DollarName '$p') ) } ) ] ) ] ) ] ) ] ) ) (command.Case to_match: {($ VSub_DollarName '$fast_forward')} arms: [ (case_arm pat_list: [{(t)}] action: [ (C {(output)} {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Fast-forward to ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (sha1) ) } ) ] ) ) ) } ) (command.AndOr ops: [Op_DPipe] children: [ (C {(output)} {(git)} {(reset)} {(--hard)} {($ VSub_DollarName '$sha1')}) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Cannot fast-forward to ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (sha1) ) } ) ] ) ) ) } ) ] ) ] ) (case_arm pat_list: [{(f)}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:first_parent) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(expr)} {(DQ ($ VSub_DollarName '$new_parents'))} {(Lit_Other ':')} {(SQ <' \\([^ ]*\\)'>)} ) ] ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Lit_LBracket '[')} {(DQ ($ VSub_Number '$1'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (-n))} {(Lit_RBracket ']')} ) ] action: [ (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [ {(output)} {(git)} {(checkout)} {($ VSub_DollarName '$first_parent')} ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Cannot move HEAD to ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (first_parent) ) } ) ] ) ) ) } ) ] ) ] ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$new_parents'))} arms: [ (case_arm pat_list: [{(SQ <' '>) (Lit_Star '*') (SQ <' '>) (Lit_Star '*')}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(DQ (a) ($ VSub_Number '$1'))} {(Lit_Other '=')} {(a-n)}) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Refusing to squash a merge: ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (sha1) ) } ) ] ) ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:author_script_content) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(get_author_ident_from_commit)} {($ VSub_DollarName '$sha1')} ) ] ) ) } ) ] ) (C {(eval)} {(DQ ($ VSub_DollarName '$author_script_content'))}) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:msg_content) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(commit_message)} {($ VSub_DollarName '$sha1')}) ] ) ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:new_parents) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name new_parents> suffix_op: (suffix_op.Unary op_id: VOp1_Pound arg_word: {(' ') ($ VSub_DollarName '$first_parent')} ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:merge_args) op: Equal rhs: {(DQ ('--no-log --no-ff'))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [ (C {(do_with_author)} {(output)} {(eval)} { (SQ <'git merge ${gpg_sign_opt:+"$gpg_sign_opt"} \\\n'> < '\t\t\t\t$merge_args $strategy_args -m "$msg_content" $new_parents' > ) } ) ] negated: T ) ] action: [ (command.Simple words: [ {(printf)} {(DQ ('%s') (Lit_Other '\\') (n))} {(DQ ($ VSub_DollarName '$msg_content'))} ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$GIT_DIR')) (/MERGE_MSG)} ) ] ) (C {(die_with_patch)} {($ VSub_DollarName '$sha1')} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Error redoing merge ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (sha1) ) } ) ] ) ) ) } ) ] ) ] ) (command.Simple words: [ {(echo)} { (DQ ($ VSub_DollarName '$sha1') (' ') (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(HEAD) (Lit_Other '^') (0)}) ] ) ) ) } ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$rewritten_list'))} ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(output)} {(eval)} {(git)} {(cherry-pick)} { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--sq-quote)} {(DQ ($ VSub_DollarName '$gpg_sign_opt'))} ) ] ) ) } ) ) } {(DQ ($ VSub_DollarName '$strategy_args'))} {(DQ ($ VSub_At '$@'))} ) (C {(die_with_patch)} {($ VSub_DollarName '$sha1')} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Could not pick ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (sha1) ) } ) ] ) ) ) } ) ] ) ] ) ] ) ] ) ] ) ] ) ) (command.FuncDef name: this_nth_commit_message body: (command.BraceGroup children: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:n) op:Equal rhs:{($ VSub_Number '$1')})] ) (C {(eval_gettext)} { (DQ ('This is the commit message #') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('{n}:') ) } ) ] ) ) (command.FuncDef name: skip_nth_commit_message body: (command.BraceGroup children: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:n) op:Equal rhs:{($ VSub_Number '$1')})] ) (C {(eval_gettext)} { (DQ ('The commit message #') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('{n} will be skipped:') ) } ) ] ) ) (command.FuncDef name: update_squash_messages body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$squash_msg'))}) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(mv)} {(DQ ($ VSub_DollarName '$squash_msg'))} {(DQ ($ VSub_DollarName '$squash_msg')) (.bak)} ) (command.ControlFlow token:<ControlFlow_Exit exit>) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:count) op: Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Arith_Plus left: (arith_expr.ArithWord w: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ {(sed)} {(-n)} {(-e)} { (DQ ('1s/^') ($ VSub_DollarName '$comment_char') ('.*') (Lit_Other '\\') ('([0-9][0-9]*') (Lit_Other '\\') (').*/') (Lit_Other '\\') (1/p) ) } {(-e)} {(DQ (q))} ] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$squash_msg')) (.bak) } ) ] ) ] ) ) } ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) } ) ] ) (command.BraceGroup children: [ (C {(printf)} {(SQ <'%s\\n'>)} { (DQ ($ VSub_DollarName '$comment_char') (' ') (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_ngettext)} { (DQ ('This is a combination of ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('count commit.') ) } { (DQ ('This is a combination of ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('count commits.') ) } {($ VSub_DollarName '$count')} ) ] ) ) ) } ) (command.Simple words: [ {(sed)} {(-e)} {(1d)} {(-e)} {(SQ <'2,/^./{\n'> <'\t\t\t\t/^$/d\n'> <'\t\t\t}'>)} ] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$squash_msg')) (.bak)} ) ] ) ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$squash_msg'))} ) ] ) ] ) ] else_action: [ (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(commit_message)} {(HEAD)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$fixup_msg'))} ) ] ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ('Cannot write ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (fixup_msg) ) } ) ] ) ) ) } ) ] ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:count) op:Equal rhs:{(2)})] ) (command.BraceGroup children: [ (C {(printf)} {(SQ <'%s\\n'>)} { (DQ ($ VSub_DollarName '$comment_char') (' ') (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('This is a combination of 2 commits.'))}) ] ) ) ) } ) (C {(printf)} {(SQ <'%s\\n'>)} { (DQ ($ VSub_DollarName '$comment_char') (' ') (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('This is the 1st commit message:'))})] ) ) ) } ) (C {(echo)}) (C {(cat)} {(DQ ($ VSub_DollarName '$fixup_msg'))}) ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$squash_msg'))} ) ] ) ] ) (command.Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [{(squash)}] action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$fixup_msg'))}) (C {(echo)}) (C {(printf)} {(SQ <'%s\\n'>)} { (DQ ($ VSub_DollarName '$comment_char') (' ') (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(this_nth_commit_message)} {($ VSub_DollarName '$count')}) ] ) ) ) } ) (C {(echo)}) (C {(commit_message)} {($ VSub_Number '$2')}) ] ) (case_arm pat_list: [{(fixup)}] action: [ (C {(echo)}) (C {(printf)} {(SQ <'%s\\n'>)} { (DQ ($ VSub_DollarName '$comment_char') (' ') (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(skip_nth_commit_message)} {($ VSub_DollarName '$count')}) ] ) ) ) } ) (C {(echo)}) (command.Pipeline children: [ (C {(commit_message)} {($ VSub_Number '$2')}) (C {(git)} {(stripspace)} {(--comment-lines)}) (C {(sed)} {(-e)} {(SQ <'s/ /\t/'>)}) ] negated: F ) ] ) ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$squash_msg'))} ) ] ) ] ) ) (command.FuncDef name: peek_next_command body: (command.BraceGroup children: [ (command.Pipeline children: [ (command.Simple words: [{(git)} {(stripspace)} {(--strip-comments)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) (C {(sed)} {(-n)} {(-e)} {(SQ <'s/ .*//p'>)} {(-e)} {(q)}) ] negated: F ) ] ) ) (command.FuncDef name: die_failed_squash body: (command.BraceGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rest) op: Equal rhs: {($ VSub_Number '$2')} ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(mv)} {(DQ ($ VSub_DollarName '$squash_msg'))} {(DQ ($ VSub_DollarName '$msg'))}) (command.ControlFlow token:<ControlFlow_Exit exit>) ] ) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$fixup_msg'))}) (command.AndOr ops: [Op_DPipe] children: [ (C {(cp)} {(DQ ($ VSub_DollarName '$msg'))} {(DQ ($ VSub_DollarName '$GIT_DIR')) (/MERGE_MSG)} ) (command.ControlFlow token:<ControlFlow_Exit exit>) ] ) (C {(warn)}) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Could not apply ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('sha1... ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) (rest) ) } ) ] ) ) ) } ) (C {(die_with_patch)} {($ VSub_DollarName '$sha1')} {(DQ )}) ] ) ) (command.FuncDef name: flush_rewritten_pending body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-s)} {(DQ ($ VSub_DollarName '$rewritten_pending'))}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:newsha1) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(rev-parse)} {(HEAD) (Lit_Other '^') (0)})] ) ) ) } ) ] ) (command.Simple words: [{(sed)} {(DQ (s/) (Lit_Other '$') ('/ ') ($ VSub_DollarName '$newsha1') (/))}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$rewritten_pending'))} ) (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$rewritten_list'))} ) ] ) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$rewritten_pending'))}) ] ) ) (command.FuncDef name: record_in_rewritten body: (command.BraceGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:oldsha1) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(rev-parse)} {($ VSub_Number '$1')})] ) ) ) } ) ] ) (command.Simple words: [{(echo)} {(DQ ($ VSub_DollarName '$oldsha1'))}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$rewritten_pending'))} ) ] ) (command.Case to_match: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children:[(C {(peek_next_command)})]) ) ) } arms: [ (case_arm pat_list:[{(squash)} {(s)} {(fixup)} {(f)}]) (case_arm pat_list: [{(Lit_Star '*')}] action: [(C {(flush_rewritten_pending)})] ) ] ) ] ) ) (command.FuncDef name: do_pick body: (command.BraceGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rest) op: Equal rhs: {($ VSub_Number '$2')} ) ] ) (command.If arms: [ (if_arm cond: [ (C {(test)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(rev-parse)} {(HEAD)})] ) ) ) } {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$squash_onto'))} ) ] action: [ (command.AndOr ops: [Op_DAmp Op_DAmp Op_DPipe] children: [ (C {(git)} {(commit)} {(--allow-empty)} {(--allow-empty-message)} {(--amend)} {(--no-post-rewrite)} {(-n)} {(-q)} {(-C)} {($ VSub_DollarName '$sha1')} ) (C {(pick_one)} {(-n)} {($ VSub_DollarName '$sha1')}) (C {(git)} {(commit)} {(--allow-empty)} {(--allow-empty-message)} {(--amend)} {(--no-post-rewrite)} {(-n)} {(-q)} {(-C)} {($ VSub_DollarName '$sha1')} { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: {(DQ ($ VSub_DollarName '$gpg_sign_opt'))} ) ) } ) (C {(die_with_patch)} {($ VSub_DollarName '$sha1')} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Could not apply ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('sha1... ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) (rest) ) } ) ] ) ) ) } ) ] ) ] ) ] else_action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(pick_one)} {($ VSub_DollarName '$sha1')}) (C {(die_with_patch)} {($ VSub_DollarName '$sha1')} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Could not apply ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('sha1... ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) (rest) ) } ) ] ) ) ) } ) ] ) ] ) ] ) ) (command.FuncDef name: do_next body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$msg'))} {(DQ ($ VSub_DollarName '$author_script'))} {(DQ ($ VSub_DollarName '$amend'))} {(DQ ($ VSub_DollarName '$state_dir')) (/stopped-sha)} ) (command.ControlFlow token:<ControlFlow_Exit exit>) ] ) (command.Simple words: [{(read)} {(-r)} {(command)} {(sha1)} {(rest)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$command'))} arms: [ (case_arm pat_list: [ {(DQ ($ VSub_DollarName '$comment_char')) (Lit_Star '*')} {(SQ )} {(noop)} {(drop)} {(d)} ] action: [(C {(mark_action_done)})] ) (case_arm pat_list: [{(DQ ($ VSub_DollarName '$cr'))}] action: [(C {(mark_action_done)})] ) (case_arm pat_list: [{(pick)} {(p)}] action: [ (C {(comment_for_reflog)} {(pick)}) (C {(mark_action_done)}) (C {(do_pick)} {($ VSub_DollarName '$sha1')} {(DQ ($ VSub_DollarName '$rest'))}) (C {(record_in_rewritten)} {($ VSub_DollarName '$sha1')}) ] ) (case_arm pat_list: [{(reword)} {(r)}] action: [ (C {(comment_for_reflog)} {(reword)}) (C {(mark_action_done)}) (C {(do_pick)} {($ VSub_DollarName '$sha1')} {(DQ ($ VSub_DollarName '$rest'))}) (command.AndOr ops: [Op_DPipe] children: [ (C {(git)} {(commit)} {(--amend)} {(--no-post-rewrite)} { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: {(DQ ($ VSub_DollarName '$gpg_sign_opt'))} ) ) } ) (command.BraceGroup children: [ (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ( 'Could not amend commit after successfully picking ' ) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('sha1... ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('rest\n') ('This is most likely due to an empty commit message, or the pre-commit hook\n') ( 'failed. If the pre-commit hook failed, you may need to resolve the issue before\n' ) ('you are able to reword the commit.') ) } ) ] ) ) ) } ) (C {(exit_with_patch)} {($ VSub_DollarName '$sha1')} {(1)}) ] ) ] ) (C {(record_in_rewritten)} {($ VSub_DollarName '$sha1')}) ] ) (case_arm pat_list: [{(edit)} {(e)}] action: [ (C {(comment_for_reflog)} {(edit)}) (C {(mark_action_done)}) (C {(do_pick)} {($ VSub_DollarName '$sha1')} {(DQ ($ VSub_DollarName '$rest'))}) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1_abbrev) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--short)} {($ VSub_DollarName '$sha1')}) ] ) ) } ) ] ) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Stopped at ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('sha1_abbrev... ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) (rest) ) } ) ] ) ) ) } ) (C {(exit_with_patch)} {($ VSub_DollarName '$sha1')} {(0)}) ] ) (case_arm pat_list: [{(squash)} {(s)} {(fixup)} {(f)}] action: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$command'))} arms: [ (case_arm pat_list: [{(squash)} {(s)}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:squash_style) op: Equal rhs: {(squash)} ) ] ) ] ) (case_arm pat_list: [{(fixup)} {(f)}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:squash_style) op: Equal rhs: {(fixup)} ) ] ) ] ) ] ) (C {(comment_for_reflog)} {($ VSub_DollarName '$squash_style')}) (command.AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$done'))}) (C {(has_action)} {(DQ ($ VSub_DollarName '$done'))}) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ("Cannot '") (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ("squash_style' without a previous commit") ) } ) ] ) ) ) } ) ] ) (C {(mark_action_done)}) (C {(update_squash_messages)} {($ VSub_DollarName '$squash_style')} {($ VSub_DollarName '$sha1')} ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:author_script_content) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(get_author_ident_from_commit)} {(HEAD)})] ) ) } ) ] ) (command.Simple words: [{(echo)} {(DQ ($ VSub_DollarName '$author_script_content'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$author_script'))} ) ] ) (C {(eval)} {(DQ ($ VSub_DollarName '$author_script_content'))}) (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [(C {(pick_one)} {(-n)} {($ VSub_DollarName '$sha1')})] negated: T ) ] action: [ (command.Simple words: [{(git)} {(rev-parse)} {(--verify)} {(HEAD)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$amend'))} ) ] ) (C {(die_failed_squash)} {($ VSub_DollarName '$sha1')} {(DQ ($ VSub_DollarName '$rest'))} ) ] ) ] ) (command.Case to_match: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(peek_next_command)})] ) ) ) } arms: [ (case_arm pat_list: [{(squash)} {(s)} {(fixup)} {(f)}] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(do_with_author)} {(output)} {(git)} {(commit)} {(--amend)} {(--no-verify)} {(-F)} {(DQ ($ VSub_DollarName '$squash_msg'))} { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: {(DQ ($ VSub_DollarName '$gpg_sign_opt'))} ) ) } ) (C {(die_failed_squash)} {($ VSub_DollarName '$sha1')} {(DQ ($ VSub_DollarName '$rest'))} ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.If arms: [ (if_arm cond: [(C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$fixup_msg'))})] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(do_with_author)} {(git)} {(commit)} {(--amend)} {(--no-verify)} {(-F)} {(DQ ($ VSub_DollarName '$fixup_msg'))} { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: {(DQ ($ VSub_DollarName '$gpg_sign_opt'))} ) ) } ) (C {(die_failed_squash)} {($ VSub_DollarName '$sha1')} {(DQ ($ VSub_DollarName '$rest'))} ) ] ) ] ) ] else_action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(cp)} {(DQ ($ VSub_DollarName '$squash_msg'))} {(DQ ($ VSub_DollarName '$GIT_DIR')) (/SQUASH_MSG)} ) (command.ControlFlow token: <ControlFlow_Exit exit> ) ] ) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$GIT_DIR')) (/MERGE_MSG)}) (command.AndOr ops: [Op_DPipe] children: [ (C {(do_with_author)} {(git)} {(commit)} {(--amend)} {(--no-verify)} {(-F)} {(DQ ($ VSub_DollarName '$GIT_DIR')) (/SQUASH_MSG)} {(-e)} { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: {(DQ ($ VSub_DollarName '$gpg_sign_opt'))} ) ) } ) (C {(die_failed_squash)} {($ VSub_DollarName '$sha1')} {(DQ ($ VSub_DollarName '$rest'))} ) ] ) ] ) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$squash_msg'))} {(DQ ($ VSub_DollarName '$fixup_msg'))} ) ] ) ] ) (C {(record_in_rewritten)} {($ VSub_DollarName '$sha1')}) ] ) (case_arm pat_list: [{(x)} {(DQ (exec))}] action: [ (command.Simple words: [{(read)} {(-r)} {(command)} {(rest)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) (C {(mark_action_done)}) (C {(eval_gettextln)} { (DQ ('Executing: ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) (rest) ) } ) (C { (DQ (word_part.BracedVarSub token: <VSub_Name SHELL> suffix_op: (suffix_op.Unary op_id: VTest_ColonHyphen arg_word: {('@SHELL_PATH@')} ) ) ) } {(-c)} {(DQ ($ VSub_DollarName '$rest'))} ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:status) op: Equal rhs: {($ VSub_QMark '$?')} ) ] ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:dirty) op:Equal rhs:{(f)})] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Subshell command_list: (command.CommandList children: [ (command.Simple words: [{(require_clean_work_tree)} {(DQ (rebase))}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:dirty) op:Equal rhs:{(t)})] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_DollarName '$status'))} {(-ne)} {(0)})] action: [ (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Execution failed: ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (rest) ) } ) ] ) ) ) } ) (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(DQ ($ VSub_DollarName '$dirty'))} {(Lit_Other '=')} {(f)}) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ( 'and made changes to the index and/or the working tree' ) ) } ) ] ) ) ) } ) ] ) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ('You can fix the problem, and then run\n') ('\n') ('\tgit rebase --continue') ) } ) ] ) ) ) } ) (C {(warn)}) (command.If arms: [ (if_arm cond: [(C {(test)} {($ VSub_DollarName '$status')} {(-eq)} {(127)})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:status) op: Equal rhs: {(1)} ) ] ) ] ) ] ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(DQ ($ VSub_DollarName '$status'))} ) ] ) (if_arm cond: [ (C {(test)} {(DQ ($ VSub_DollarName '$dirty'))} {(Lit_Other '=')} {(t)}) ] action: [ (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Execution succeeded: ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('rest\n') ('but left changes to the index and/or the working tree\n') ('Commit or stash your changes, and then run\n') ('\n') ('\tgit rebase --continue') ) } ) ] ) ) ) } ) (C {(warn)}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Unknown command: ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('command ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('sha1 ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (rest) ) } ) ] ) ) ) } ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fixtodo) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ("Please fix this using 'git rebase --edit-todo'."))} ) ] ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Simple words: [ {(git)} {(rev-parse)} {(--verify)} {(-q)} {(DQ ($ VSub_DollarName '$sha1'))} ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) ] action: [ (C {(die_with_patch)} {($ VSub_DollarName '$sha1')} {(DQ ($ VSub_DollarName '$fixtodo'))} ) ] ) ] else_action: [(C {(die)} {(DQ ($ VSub_DollarName '$fixtodo'))})] ) ] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-s)} {(DQ ($ VSub_DollarName '$todo'))}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.AndOr ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp] children: [ (C {(comment_for_reflog)} {(finish)}) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:newhead) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(rev-parse)} {(HEAD)})] ) ) } ) ] ) (command.Case to_match: {($ VSub_DollarName '$head_name')} arms: [ (case_arm pat_list: [{(refs/) (Lit_Star '*')}] action: [ (command.AndOr ops: [Op_DAmp Op_DAmp] children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:message) op: Equal rhs: { (DQ ($ VSub_DollarName '$GIT_REFLOG_ACTION') (': ') ($ VSub_DollarName '$head_name') (' onto ') ($ VSub_DollarName '$onto') ) } ) ] ) (C {(git)} {(update-ref)} {(-m)} {(DQ ($ VSub_DollarName '$message'))} {($ VSub_DollarName '$head_name')} {($ VSub_DollarName '$newhead')} {($ VSub_DollarName '$orig_head')} ) (C {(git)} {(symbolic-ref)} {(-m)} { (DQ ($ VSub_DollarName '$GIT_REFLOG_ACTION') (': returning to ') ($ VSub_DollarName '$head_name') ) } {(HEAD)} {($ VSub_DollarName '$head_name')} ) ] ) ] ) ] ) (command.BraceGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_DollarName '$state_dir')) (/verbose)} ) (C {(git)} {(diff-tree)} {(--stat)} {($ VSub_DollarName '$orig_head') (..HEAD)}) ] ) ] ) (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(test)} {(-s)} {(DQ ($ VSub_DollarName '$rewritten_list'))}) (command.Simple words: [{(git)} {(notes)} {(copy)} {(--for-rewrite) (Lit_Other '=') (rebase)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$rewritten_list'))} ) ] ) (C {(true)}) ] ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:hook) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--git-path)} {(hooks/post-rewrite)}) ] ) ) ) } ) ] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-x)} {(DQ ($ VSub_DollarName '$hook'))}) (C {(test)} {(-s)} {(DQ ($ VSub_DollarName '$rewritten_list'))}) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Simple words: [{(DQ ($ VSub_DollarName '$hook'))} {(rebase)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$rewritten_list'))} ) ] ) (C {(true)}) ] ) ] ) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Successfully rebased and updated ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (head_name.) ) } ) ] ) ) ) } ) ] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) ) (command.FuncDef name: do_rest body: (command.BraceGroup children: [ (command.WhileUntil keyword: <KW_While while> cond: [(C {(Lit_Other ':')})] body: (command.DoGroup children: [ (command.AndOr ops: [Op_DPipe] children: [(C {(do_next)}) (command.ControlFlow token:<ControlFlow_Break break>)] ) ] ) ) ] ) ) (command.FuncDef name: skip_unnecessary_picks body: (command.BraceGroup children: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:fd) op:Equal rhs:{(3)})] ) (command.AndOr ops: [Op_DAmp Op_DAmp Op_DPipe] children: [ (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(-r)} {(command)} {(rest)})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$fd') (',') ($ VSub_DollarName '$command'))} arms: [ (case_arm pat_list: [{(3) (Lit_Comma ',') (pick)} {(3) (Lit_Comma ',') (p)}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name rest> suffix_op: (suffix_op.Unary op_id: VOp1_DPercent arg_word: {(' *')} ) ) } ) ] ) (command.Case to_match: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(DQ ($ VSub_DollarName '$sha1')) (Lit_Other '^')} ) ] ) ) ) } arms: [ (case_arm pat_list: [{(DQ ($ VSub_DollarName '$onto')) (Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:onto) op: Equal rhs: {($ VSub_DollarName '$sha1')} ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fd) op: Equal rhs: {(1)} ) ] ) ] ) ] ) ] ) (case_arm pat_list: [ {(3) (Lit_Comma ',') (DQ ($ VSub_DollarName '$comment_char')) (Lit_Star '*') } {(3) (Lit_Comma ',')} ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fd) op: Equal rhs: {(1)} ) ] ) ] ) ] ) (command.Simple words: [ {(printf)} {(SQ <'%s\\n'>)} { (DQ ($ VSub_DollarName '$command') (word_part.BracedVarSub token: <VSub_Name rest> suffix_op: (suffix_op.Unary op_id:VTest_ColonPlus arg_word:{(' ')}) ) ($ VSub_DollarName '$rest') ) } ] redirects: [ (redir.Redir op: <Redir_GreatAnd '>&'> fd: 16777215 arg_word: {($ VSub_DollarName '$fd')} ) ] ) ] ) redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo') (.new))} ) (redir.Redir op: <Redir_DGreat '3>>'> fd: 3 arg_word: {(DQ ($ VSub_DollarName '$done'))} ) ] ) (C {(mv)} {(-f)} {(DQ ($ VSub_DollarName '$todo')) (.new)} {(DQ ($ VSub_DollarName '$todo'))} ) (command.Case to_match: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children:[(C {(peek_next_command)})]) ) ) } arms: [ (case_arm pat_list: [{(squash)} {(s)} {(fixup)} {(f)}] action: [(C {(record_in_rewritten)} {(DQ ($ VSub_DollarName '$onto'))})] ) ] ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Could not skip unnecessary pick commands'))}) ] ) ) ) } ) ] ) ] ) ) (command.FuncDef name: transform_todo_ids body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(-r)} {(command)} {(rest)})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$command'))} arms: [ (case_arm pat_list: [ {(DQ ($ VSub_DollarName '$comment_char')) (Lit_Star '*')} {(exec)} ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(DQ ($ VSub_At '$@'))} { (word_part.BracedVarSub token: <VSub_Name rest> suffix_op: (suffix_op.Unary op_id: VOp1_DPercent arg_word: {('[\t ]*')} ) ) } ) ] ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rest) op: Equal rhs: { (DQ ($ VSub_DollarName '$sha1') (' ') (word_part.BracedVarSub token: <VSub_Name rest> suffix_op: (suffix_op.Unary op_id: VOp1_Pound arg_word: {('*[\t ]')} ) ) ) } ) ] ) ] ) ] ) ] ) (C {(printf)} {(SQ <'%s\\n'>)} { (DQ ($ VSub_DollarName '$command') (word_part.BracedVarSub token: <VSub_Name rest> suffix_op: (suffix_op.Unary op_id:VTest_ColonPlus arg_word:{(' ')}) ) ($ VSub_DollarName '$rest') ) } ) ] ) redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo') (.new))} ) ] ) (C {(mv)} {(-f)} {(DQ ($ VSub_DollarName '$todo') (.new))} {(DQ ($ VSub_DollarName '$todo'))} ) ] ) ] ) ) (command.FuncDef name: expand_todo_ids body: (command.BraceGroup children:[(C {(transform_todo_ids)})]) ) (command.FuncDef name: collapse_todo_ids body: (command.BraceGroup children:[(C {(transform_todo_ids)} {(--short)})]) ) (command.FuncDef name: rearrange_squash body: (command.BraceGroup children: [ (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(-r)} {(pick)} {(sha1)} {(message)})] body: (command.DoGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-z)} {(DQ (${ VSub_Name format))}) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:message) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(log)} {(-n)} {(1)} {(--format) (Lit_Other '=') (DQ ('%s'))} {(${ VSub_Name sha1)} ) ] ) ) } ) ] ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$message'))} arms: [ (case_arm pat_list: [ {(DQ ('squash! ')) (Lit_Star '*')} {(DQ ('fixup! ')) (Lit_Star '*')} ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:action) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name message> suffix_op: (suffix_op.Unary op_id: VOp1_DPercent arg_word: {('!*')} ) ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rest) op: Equal rhs: {($ VSub_DollarName '$message')} ) ] ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:prefix) op:Equal rhs:(word.Empty))] ) (command.WhileUntil keyword: <KW_While while> cond: [(C {(Lit_Other ':')})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$rest'))} arms: [ (case_arm pat_list: [ {(DQ ('squash! ')) (Lit_Star '*')} {(DQ ('fixup! ')) (Lit_Star '*')} ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:prefix) op: Equal rhs: { (DQ ($ VSub_DollarName '$prefix') (word_part.BracedVarSub token: <VSub_Name rest> suffix_op: (suffix_op.Unary op_id: VOp1_DPercent arg_word: {('!*')} ) ) (',') ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rest) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name rest> suffix_op: (suffix_op.Unary op_id: VOp1_Pound arg_word: {('*! ')} ) ) ) } ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.ControlFlow token: <ControlFlow_Break break> ) ] ) ] ) ] ) ) (C {(printf)} {(SQ <'%s %s %s %s\\n'>)} {(DQ ($ VSub_DollarName '$sha1'))} {(DQ ($ VSub_DollarName '$action'))} {(DQ ($ VSub_DollarName '$prefix'))} {(DQ ($ VSub_DollarName '$rest'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} { (DQ (word_part.BracedVarSub token: <VSub_Name rest> suffix_op: (suffix_op.Unary op_id: VOp1_Pound arg_word: {('* ')} ) ) ) } {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$rest'))} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fullsha) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(rev-parse)} {(-q)} {(--verify)} {(DQ ($ VSub_DollarName '$rest'))} ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$fullsha'))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ($ VSub_DollarName '$sha1') (' +') ($ VSub_DollarName '$action') (' ') ($ VSub_DollarName '$prefix') (' ') ($ VSub_DollarName '$fullsha') ) } ) ] ) ] ) ] ) ] ) ] ) ] ) ] ) redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1') (.sq))} ) (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-s)} {(DQ ($ VSub_Number '$1') (.sq))}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:used) op:Equal rhs:(word.Empty))] ) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(-r)} {(pick)} {(sha1)} {(message)})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ (' ') ($ VSub_DollarName '$used'))} arms: [ (case_arm pat_list: [ {(Lit_Star '*') (DQ (' ') ($ VSub_DollarName '$sha1') (' ')) (Lit_Star '*') } ] action: [(command.ControlFlow token:<ControlFlow_Continue continue>)] ) ] ) (C {(printf)} {(SQ <'%s\\n'>)} { (DQ ($ VSub_DollarName '$pick') (' ') ($ VSub_DollarName '$sha1') (' ') ($ VSub_DollarName '$message') ) } ) (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-z)} {(DQ (${ VSub_Name format))}) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:message) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(log)} {(-n)} {(1)} {(--format) (Lit_Other '=') (DQ ('%s'))} {(${ VSub_Name sha1)} ) ] ) ) } ) ] ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:used) op: Equal rhs: {(DQ ($ VSub_DollarName '$used') ($ VSub_DollarName '$sha1') (' '))} ) ] ) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(-r)} {(squash)} {(action)} {(msg_prefix)} {(msg_content)})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ (' ') ($ VSub_DollarName '$used'))} arms: [ (case_arm pat_list: [ {(Lit_Star '*') (DQ (' ') ($ VSub_DollarName '$squash') (' ')) (Lit_Star '*') } ] action: [(command.ControlFlow token:<ControlFlow_Continue continue>)] ) ] ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:emit) op:Equal rhs:{(0)})] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$action'))} arms: [ (case_arm pat_list: [{(Lit_Other '+') (Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:action) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name action> suffix_op: (suffix_op.Unary op_id: VOp1_Pound arg_word: {('+')} ) ) ) } ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$msg_content'))} arms: [ (case_arm pat_list: [{(DQ ($ VSub_DollarName '$sha1')) (Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:emit) op: Equal rhs: {(1)} ) ] ) ] ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$message'))} arms: [ (case_arm pat_list: [ {(DQ ($ VSub_DollarName '$msg_content')) (Lit_Star '*')} ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:emit) op: Equal rhs: {(1)} ) ] ) ] ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {($ VSub_DollarName '$emit')} {(Lit_Other '=')} {(1)}) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ (${ VSub_Name format))})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:msg_content) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(log)} {(-n)} {(1)} {(--format) (Lit_Other '=') (DQ (${ VSub_Name format)) } {(${ VSub_Name squash)} ) ] ) ) } ) ] ) ] ) ] else_action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:msg_content) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ ($ VSub_DollarName '$msg_prefix' ) ) } ) (C {(sed)} {(DQ ('s/,/! /g'))}) ] negated: F ) ] ) ) ($ VSub_DollarName '$msg_content') ) } ) ] ) ] ) (C {(printf)} {(SQ <'%s\\n'>)} { (DQ ($ VSub_DollarName '$action') (' ') ($ VSub_DollarName '$squash') (' ') ($ VSub_DollarName '$msg_content') ) } ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:used) op: Equal rhs: { (DQ ($ VSub_DollarName '$used') ($ VSub_DollarName '$squash') (' ') ) } ) ] ) ] ) ] ) ] ) redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1') (.sq))} ) ] ) ] ) redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1') (.rearranged))} ) (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) (command.Simple words: [{(cat)} {(DQ ($ VSub_Number '$1') (.rearranged))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (.sq))} {(DQ ($ VSub_Number '$1') (.rearranged))}) ] ) ) (command.FuncDef name: add_exec_commands body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.BraceGroup children: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:first) op:Equal rhs:{(t)})] ) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(-r)} {(insn)} {(rest)})] body: (command.DoGroup children: [ (command.Case to_match: {($ VSub_DollarName '$insn')} arms: [ (case_arm pat_list: [{(pick)}] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$first'))}) (C {(printf)} {(DQ ('%s'))} {(DQ ($ VSub_DollarName '$cmd'))}) ] ) ] ) ] ) (C {(printf)} {(DQ ('%s %s') (Lit_Other '\\') (n))} {(DQ ($ VSub_DollarName '$insn'))} {(DQ ($ VSub_DollarName '$rest'))} ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:first) op:Equal rhs:(word.Empty))] ) ] ) ) (C {(printf)} {(DQ ('%s'))} {(DQ ($ VSub_DollarName '$cmd'))}) ] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1') (.new))} ) ] ) (C {(mv)} {(DQ ($ VSub_Number '$1') (.new))} {(DQ ($ VSub_Number '$1'))}) ] ) ] ) ) (command.FuncDef name: check_commit_sha body: (command.BraceGroup children: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:badsha) op:Equal rhs:{(0)})] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Number '$1'))})] action: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:badsha) op:Equal rhs:{(1)})] ) ] ) ] else_action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1_verif) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(--quiet)} {($ VSub_Number '$1') (Lit_Other '^') (Lit_LBrace '{') (commit) (Lit_RBrace '}') } ) ] ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$sha1_verif'))})] action: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:badsha) op:Equal rhs:{(1)})] ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {($ VSub_DollarName '$badsha')} {(-ne)} {(0)})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:line) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(sed)} {(-n)} {(-e)} {(DQ (${ VSub_Number 2) (p))} {(DQ ($ VSub_Number '$3'))} ) ] ) ) ) } ) ] ) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ( "Warning: the SHA-1 is missing or isn't a commit in the following line:\n" ) (' - ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) (line) ) } ) ] ) ) ) } ) (C {(warn)}) ] ) ] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_DollarName '$badsha')} ) ] ) ) (command.FuncDef name: check_bad_cmd_and_sha body: (command.BraceGroup children: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:retval) op:Equal rhs:{(0)})] ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:lineno) op:Equal rhs:{(0)})] ) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(-r)} {(command)} {(rest)})] body: (command.DoGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:lineno) op: Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Arith_Plus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$lineno')}) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) } ) ] ) (command.Case to_match: {($ VSub_DollarName '$command')} arms: [ (case_arm pat_list: [ {(DQ ($ VSub_DollarName '$comment_char')) (Lit_Star '*')} {(SQ )} {(noop)} {(x)} {(exec)} ] ) (case_arm pat_list: [{(DQ ($ VSub_DollarName '$cr'))}] ) (case_arm pat_list: [ {(pick)} {(p)} {(drop)} {(d)} {(reword)} {(r)} {(edit)} {(e)} {(squash)} {(s)} {(fixup)} {(f)} ] action: [ (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [ (C {(check_commit_sha)} { (DQ (word_part.BracedVarSub token: <VSub_Name rest> suffix_op: (suffix_op.Unary op_id: VOp1_DPercent arg_word: {('[ \t]*')} ) ) ) } {(DQ ($ VSub_DollarName '$lineno'))} {(DQ ($ VSub_Number '$1'))} ) ] negated: T ) ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:retval) op: Equal rhs: {(1)} ) ] ) ] ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:line) op: Equal rhs: { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(sed)} {(-n)} {(-e)} {(DQ (${ VSub_Name lineno) (p))} {(DQ ($ VSub_Number '$1'))} ) ] ) ) ) } ) ] ) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ( "Warning: the command isn't recognized in the following line:\n" ) (' - ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) (line) ) } ) ] ) ) ) } ) (C {(warn)}) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:retval) op: Equal rhs: {(1)} ) ] ) ] ) ] ) ] ) redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_DollarName '$retval')} ) ] ) ) (command.FuncDef name: todo_list_to_sha_list body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(git)} {(stripspace)} {(--strip-comments)}) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(-r)} {(command)} {(sha1)} {(rest)})] body: (command.DoGroup children: [ (command.Case to_match: {($ VSub_DollarName '$command')} arms: [ (case_arm pat_list: [ {(DQ ($ VSub_DollarName '$comment_char')) (Lit_Star '*')} {(SQ )} {(noop)} {(x)} {(DQ (exec))} ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:long_sha) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(rev-list)} {(--no-walk)} {(DQ ($ VSub_DollarName '$sha1'))} ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ) ] ) (C {(printf)} {(DQ ('%s') (Lit_Other '\\') (n))} {(DQ ($ VSub_DollarName '$long_sha'))} ) ] ) ] ) ] ) ) ] negated: F ) ] ) ) (command.FuncDef name: warn_lines body: (command.BraceGroup children: [ (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(-r)} {(line)})] body: (command.DoGroup children: [(C {(warn)} {(DQ (' - ') ($ VSub_DollarName '$line'))})] ) ) ] ) ) (command.FuncDef name: checkout_onto body: (command.BraceGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_REFLOG_ACTION) op: Equal rhs: { (DQ ($ VSub_DollarName '$GIT_REFLOG_ACTION') (': checkout ') ($ VSub_DollarName '$onto_name') ) } ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(output)} {(git)} {(checkout)} {($ VSub_DollarName '$onto')}) (C {(die_abort)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('could not detach HEAD'))})] ) ) ) } ) ] ) (C {(git)} {(update-ref)} {(ORIG_HEAD)} {($ VSub_DollarName '$orig_head')}) ] ) ) (command.FuncDef name: get_missing_commit_check_level body: (command.BraceGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:check_level) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(config)} {(--get)} {(rebase.missingCommitsCheck)})] ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:check_level) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name check_level> suffix_op: (suffix_op.Unary op_id:VTest_ColonHyphen arg_word:{(ignore)}) ) } ) ] ) (command.Pipeline children: [ (C {(printf)} {(SQ <'%s'>)} {(DQ ($ VSub_DollarName '$check_level'))}) (C {(tr)} {(SQ <A-Z>)} {(SQ <a-z>)}) ] negated: F ) ] ) ) (command.FuncDef name: check_todo_list body: (command.BraceGroup children: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:raise_error) op:Equal rhs:{(f)})] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:check_level) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(get_missing_commit_check_level)})] ) ) } ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$check_level'))} arms: [ (case_arm pat_list: [{(warn)} {(error)}] action: [ (command.Simple words: [{(todo_list_to_sha_list)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo')) (.backup)} ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo')) (.oldsha1)} ) ] ) (command.Simple words: [{(todo_list_to_sha_list)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo')) (.newsha1)} ) ] ) (command.Simple words: [{(sort)} {(-u)} {(DQ ($ VSub_DollarName '$todo')) (.oldsha1)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo')) (.oldsha1) (Lit_Other '+')} ) ] ) (C {(mv)} {(DQ ($ VSub_DollarName '$todo')) (.oldsha1) (Lit_Other '+')} {(DQ ($ VSub_DollarName '$todo')) (.oldsha1)} ) (command.Simple words: [{(sort)} {(-u)} {(DQ ($ VSub_DollarName '$todo')) (.newsha1)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo')) (.newsha1) (Lit_Other '+')} ) ] ) (C {(mv)} {(DQ ($ VSub_DollarName '$todo')) (.newsha1) (Lit_Other '+')} {(DQ ($ VSub_DollarName '$todo')) (.newsha1)} ) (command.Simple words: [ {(comm)} {(-2)} {(-3)} {(DQ ($ VSub_DollarName '$todo')) (.oldsha1)} {(DQ ($ VSub_DollarName '$todo')) (.newsha1)} ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo')) (.miss)} ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-s)} {(DQ ($ VSub_DollarName '$todo')) (.miss)})] action: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(DQ ($ VSub_DollarName '$check_level'))} {(Lit_Other '=')} {(error)} ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:raise_error) op: Equal rhs: {(t)} ) ] ) ] ) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ( 'Warning: some commits may have been dropped accidentally.\n' ) ('Dropped commits (newer to older):') ) } ) ] ) ) ) } ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opt) op: Equal rhs: { (DQ ( '--no-walk=sorted --format=oneline --abbrev-commit --stdin' ) ) } ) ] ) (command.Pipeline children: [ (command.Simple words: [{(git)} {(rev-list)} {($ VSub_DollarName '$opt')}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo')) (.miss)} ) ] ) (C {(warn_lines)}) ] negated: F ) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ('To avoid this message, use ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\"'> ) (drop) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) (' to explicitly remove a commit.\n') ('\n') ("Use 'git config rebase.missingCommitsCheck' to change the level of warnings.\n") ( 'The possible behaviours are: ignore, warn, error.' ) ) } ) ] ) ) ) } ) (C {(warn)}) ] ) ] ) ] ) (case_arm pat_list:[{(ignore)}]) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Unrecognized setting ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('check_level for option rebase.missingCommitsCheck. Ignoring.') ) } ) ] ) ) ) } ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [(C {(check_bad_cmd_and_sha)} {(DQ ($ VSub_DollarName '$todo'))})] negated: T ) ] action: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:raise_error) op:Equal rhs:{(t)})] ) ] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {($ VSub_DollarName '$raise_error')} {(Lit_Other '=')} {(t)})] action: [ (C {(checkout_onto)}) (C {(warn)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ( "You can fix this with 'git rebase --edit-todo' and then run 'git rebase --continue'." ) ) } ) ] ) ) ) } ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ("Or you can abort the rebase with 'git rebase --abort'."))} ) ] ) ) ) } ) ] ) ] ) ] ) ) (command.FuncDef name: git_rebase__interactive body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$action'))} arms: [ (case_arm pat_list: [{(ControlFlow_Continue continue)}] action: [ (command.If arms: [ (if_arm cond: [(C {(git)} {(diff-index)} {(--cached)} {(--quiet)} {(HEAD)} {(--)})] action: [ (command.AndOr ops: [Op_DPipe Op_DPipe] children: [ (C {(test)} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_DollarName '$GIT_DIR')) (/CHERRY_PICK_HEAD)} ) (C {(rm)} {(DQ ($ VSub_DollarName '$GIT_DIR')) (/CHERRY_PICK_HEAD)}) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Could not remove CHERRY_PICK_HEAD'))} ) ] ) ) ) } ) ] ) ] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [ (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$author_script'))}) ] negated: T ) ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:gpg_sign_opt_quoted) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--sq-quote)} { (DQ ($ VSub_DollarName '$gpg_sign_opt') ) } ) ] ) ) } ) ) } ) ] ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ( 'You have staged changes in your working tree.\n' ) ('If these changes are meant to be\n') ('squashed into the previous commit, run:\n') ('\n') (' git commit --amend ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('gpg_sign_opt_quoted\n') ('\n') ( 'If they are meant to go into a new commit, run:\n' ) ('\n') (' git commit ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('gpg_sign_opt_quoted\n') ('\n') ("In both cases, once you're done, continue with:\n") ('\n') (' git rebase --continue\n') ) } ) ] ) ) ) } ) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(.)} {(DQ ($ VSub_DollarName '$author_script'))}) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ( 'Error trying to find the author identity to amend commit' ) ) } ) ] ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$amend'))})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:current_head) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(HEAD)}) ] ) ) } ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(DQ ($ VSub_DollarName '$current_head'))} {(Lit_Other '=')} { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(cat)} {(DQ ($ VSub_DollarName '$amend'))})] ) ) } ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ( 'You have uncommitted changes in your working tree. Please commit them\n' ) ("first and then run 'git rebase --continue' again.") ) } ) ] ) ) ) } ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(do_with_author)} {(git)} {(commit)} {(--amend)} {(--no-verify)} {(-F)} {(DQ ($ VSub_DollarName '$msg'))} {(-e)} { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: {(DQ ($ VSub_DollarName '$gpg_sign_opt'))} ) ) } ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Could not commit staged changes.'))} ) ] ) ) ) } ) ] ) ] ) ] else_action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(do_with_author)} {(git)} {(commit)} {(--no-verify)} {(-F)} {(DQ ($ VSub_DollarName '$msg'))} {(-e)} { (word_part.BracedVarSub token: <VSub_Name gpg_sign_opt> suffix_op: (suffix_op.Unary op_id: VTest_ColonPlus arg_word: {(DQ ($ VSub_DollarName '$gpg_sign_opt'))} ) ) } ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Could not commit staged changes.'))}) ] ) ) ) } ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(test)} {(-r)} {(DQ ($ VSub_DollarName '$state_dir')) (/stopped-sha)}) ] action: [ (C {(record_in_rewritten)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(cat)} {(DQ ($ VSub_DollarName '$state_dir')) (/stopped-sha)} ) ] ) ) ) } ) ] ) ] ) (C {(require_clean_work_tree)} {(DQ (rebase))}) (C {(do_rest)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) (case_arm pat_list: [{(skip)}] action: [ (C {(git)} {(rerere)} {(clear)}) (C {(do_rest)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) (case_arm pat_list: [{(edit-todo)}] action: [ (command.Simple words: [{(git)} {(stripspace)} {(--strip-comments)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo')) (.new)} ) ] ) (C {(mv)} {(-f)} {(DQ ($ VSub_DollarName '$todo')) (.new)} {(DQ ($ VSub_DollarName '$todo'))} ) (C {(collapse_todo_ids)}) (C {(append_todo_help)}) (command.Pipeline children: [ (C {(gettext)} { (DQ ('\n') ('You are editing the todo file of an ongoing interactive rebase.\n') ('To continue rebase after editing, run:\n') (' git rebase --continue\n') ('\n') ) } ) (command.Simple words: [{(git)} {(stripspace)} {(--comment-lines)}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) ] negated: F ) (command.AndOr ops: [Op_DPipe] children: [ (C {(git_sequence_editor)} {(DQ ($ VSub_DollarName '$todo'))}) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('Could not execute editor'))})] ) ) ) } ) ] ) (C {(expand_todo_ids)}) (command.ControlFlow token:<ControlFlow_Exit exit>) ] ) ] ) (C {(comment_for_reflog)} {(start)}) (command.If arms: [ (if_arm cond: [(C {(test)} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_DollarName '$switch_to'))})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_REFLOG_ACTION) op: Equal rhs: { (DQ ($ VSub_DollarName '$GIT_REFLOG_ACTION') (': checkout ') ($ VSub_DollarName '$switch_to') ) } ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(output)} {(git)} {(checkout)} {(DQ ($ VSub_DollarName '$switch_to'))} {(--)}) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Could not checkout ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (switch_to) ) } ) ] ) ) ) } ) ] ) (C {(comment_for_reflog)} {(start)}) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:orig_head) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(rev-parse)} {(--verify)} {(HEAD)})] ) ) } ) ] ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('No HEAD?'))})] ) ) ) } ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_DollarName '$state_dir'))}) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Could not create temporary ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) (state_dir) ) } ) ] ) ) ) } ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(Lit_Other ':')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$state_dir')) (/interactive)} ) ] ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('Could not mark as interactive'))})] ) ) ) } ) ] ) (C {(write_basic_state)}) (command.If arms: [ (if_arm cond: [ (C {(test)} {(t)} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$preserve_merges'))}) ] action: [ (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$rebase_root'))})] action: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(mkdir)} {(DQ ($ VSub_DollarName '$rewritten'))}) (command.ForEach iter_name: c iter_words: [ { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(merge-base)} {(--all)} {($ VSub_DollarName '$orig_head')} {($ VSub_DollarName '$upstream')} ) ] ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (command.Simple words: [{(echo)} {($ VSub_DollarName '$onto')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$rewritten')) (/) ($ VSub_DollarName '$c') } ) ] ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} { (DQ ('Could not init rewritten commits') ) } ) ] ) ) ) } ) ] ) ] ) ) ] ) ] ) ] else_action: [ (command.AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(mkdir)} {(DQ ($ VSub_DollarName '$rewritten'))}) (command.Simple words: [{(echo)} {($ VSub_DollarName '$onto')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$rewritten')) (/root)} ) ] ) (C {(die)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Could not init rewritten commits'))}) ] ) ) ) } ) ] ) ] ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:merges_option) op:Equal rhs:(word.Empty))] ) ] ) ] else_action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:merges_option) op: Equal rhs: {(DQ ('--no-merges --cherry-pick'))} ) ] ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:shorthead) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--short)} {($ VSub_DollarName '$orig_head')}) ] ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:shortonto) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--short)} {($ VSub_DollarName '$onto')}) ] ) ) } ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$rebase_root'))})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:shortupstream) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-parse)} {(--short)} {($ VSub_DollarName '$upstream')} ) ] ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:revisions) op: Equal rhs: {($ VSub_DollarName '$upstream') (...) ($ VSub_DollarName '$orig_head')} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:shortrevisions) op: Equal rhs: {($ VSub_DollarName '$shortupstream') (..) ($ VSub_DollarName '$shorthead') } ) ] ) ] ) ] else_action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:revisions) op: Equal rhs: {($ VSub_DollarName '$onto') (...) ($ VSub_DollarName '$orig_head')} ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:shortrevisions) op: Equal rhs: {($ VSub_DollarName '$shorthead')} ) ] ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:format) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(git)} {(config)} {(--get)} {(rebase.instructionFormat)})] ) ) } ) ] ) (command.Pipeline children: [ (C {(git)} {(rev-list)} {($ VSub_DollarName '$merges_option')} {(--format) (Lit_Other '=') (DQ ('%m%H ') (word_part.BracedVarSub token: <VSub_Name format> suffix_op: (suffix_op.Unary op_id: VTest_ColonHyphen arg_word: {(Lit_Percent '%') (s)} ) ) ) } {(--reverse)} {(--left-right)} {(--topo-order)} {($ VSub_DollarName '$revisions')} { (word_part.BracedVarSub token: <VSub_Name restrict_revision> suffix_op: (suffix_op.Unary op_id: VTest_Plus arg_word: {('^') ($ VSub_DollarName '$restrict_revision')} ) ) } ) (C {(sed)} {(-n)} {(DQ ('s/^>//p'))}) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(-r)} {(sha1)} {(rest)})] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Op_DAmp Op_DAmp] children: [ (C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$keep_empty'))}) (C {(is_empty_commit)} {($ VSub_DollarName '$sha1')}) (command.Pipeline children: [(C {(is_merge_commit)} {($ VSub_DollarName '$sha1')})] negated: T ) ] ) ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:comment_out) op: Equal rhs: {(DQ ($ VSub_DollarName '$comment_char') (' '))} ) ] ) ] ) ] else_action: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:comment_out) op:Equal rhs:(word.Empty))] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(test)} {(t)} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$preserve_merges'))} ) ] action: [ (command.Simple words: [ {(printf)} {(SQ <'%s\\n'>)} { (DQ (${ VSub_Name comment_out) ('pick ') ($ VSub_DollarName '$sha1') (' ') ($ VSub_DollarName '$rest') ) } ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) ] ) ] else_action: [ (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$rebase_root'))})] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:preserve) op: Equal rhs: {(t)} ) ] ) (command.ForEach iter_name: p iter_words: [ { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(git)} {(rev-list)} {(--parents)} {(-1)} {($ VSub_DollarName '$sha1')} ) (C {(cut)} {(-d) (SQ <' '>)} {(-s)} {(-f2-)}) ] negated: F ) ] ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$rewritten')) (/) ($ VSub_DollarName '$p') } ) ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:preserve) op: Equal rhs: {(f)} ) ] ) ] ) ] ) ] ) ) ] ) ] else_action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:preserve) op: Equal rhs: {(f)} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(test)} {(f)} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$preserve'))} ) ] action: [ (C {(touch)} {(DQ ($ VSub_DollarName '$rewritten')) (/) ($ VSub_DollarName '$sha1') } ) (command.Simple words: [ {(printf)} {(SQ <'%s\\n'>)} { (DQ (${ VSub_Name comment_out) ('pick ') ($ VSub_DollarName '$sha1') (' ') ($ VSub_DollarName '$rest') ) } ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) ] ) ] ) ] ) ] ) ) ] negated: F ) (command.If arms: [ (if_arm cond: [ (C {(test)} {(t)} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$preserve_merges'))}) ] action: [ (C {(mkdir)} {(DQ ($ VSub_DollarName '$dropped'))}) (command.Pipeline children: [ (C {(git)} {(rev-list)} {($ VSub_DollarName '$revisions')} {(--left-right)} {(--cherry-pick)} ) (command.Simple words: [{(sed)} {(-n)} {(DQ ('s/^>//p'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$state_dir')) (/not-cherry-picks)} ) ] ) ] negated: F ) (command.Pipeline children: [ (C {(git)} {(rev-list)} {($ VSub_DollarName '$revisions')}) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(rev)})] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$rewritten')) (/) ($ VSub_DollarName '$rev') } ) (command.Pipeline children: [ (command.Simple words: [ {(sane_grep)} {(DQ ($ VSub_DollarName '$rev'))} {(DQ ($ VSub_DollarName '$state_dir')) (/not-cherry-picks) } ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) ] negated: T ) ] ) ] action: [ (command.Pipeline children: [ (C {(git)} {(rev-list)} {(--parents)} {(-1)} {($ VSub_DollarName '$rev')} ) (command.Simple words: [{(cut)} {(-d) (SQ <' '>)} {(-s)} {(-f2)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$dropped')) (/) ($ VSub_DollarName '$rev') } ) ] ) ] negated: F ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:sha1) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(git)} {(rev-list)} {(-1)} {($ VSub_DollarName '$rev')} ) ] ) ) } ) ] ) (command.Sentence child: (command.Simple words: [ {(sane_grep)} {(-v)} {(DQ ('^[a-z][a-z]* ') ($ VSub_DollarName '$sha1'))} ] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ (${ VSub_Name todo) (2))} ) ] ) terminator: <Op_Semi ';'> ) (C {(mv)} {(DQ (${ VSub_Name todo) (2))} {(DQ ($ VSub_DollarName '$todo'))} ) (C {(rm)} {(DQ ($ VSub_DollarName '$rewritten')) (/) ($ VSub_DollarName '$rev') } ) ] ) ] ) ] ) ) ] negated: F ) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-s)} {(DQ ($ VSub_DollarName '$todo'))}) (command.Simple words: [{(echo)} {(noop)}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$autosquash'))}) (C {(rearrange_squash)} {(DQ ($ VSub_DollarName '$todo'))}) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$cmd'))}) (C {(add_exec_commands)} {(DQ ($ VSub_DollarName '$todo'))}) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:todocount) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [{(git)} {(stripspace)} {(--strip-comments)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) (C {(wc)} {(-l)}) ] negated: F ) ] ) ) } ) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:todocount) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name todocount> suffix_op: (suffix_op.Unary op_id:VOp1_DPound arg_word:{('* ')}) ) } ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 8702 stdin_parts: [ ('\n') ($ VSub_DollarName '$comment_char') (' ') (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(eval_ngettext)} { (DQ ('Rebase ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('shortrevisions onto ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('shortonto (') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('todocount command)') ) } { (DQ ('Rebase ') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('shortrevisions onto ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\$'>) ('shortonto (') (word_part.EscapedLiteral token: <Lit_EscapedChar '\\$'> ) ('todocount commands)') ) } {(DQ ($ VSub_DollarName '$todocount'))} ) ] ) ) ('\n') ] ) ] ) (C {(append_todo_help)}) (command.Pipeline children: [ (C {(gettext)} { (DQ ('\n') ('However, if you remove everything, the rebase will be aborted.\n') ('\n') ) } ) (command.Simple words: [{(git)} {(stripspace)} {(--comment-lines)}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) ] negated: F ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$keep_empty'))})] action: [ (command.Simple words: [ {(printf)} {(SQ <'%s\\n'>)} { (DQ ($ VSub_DollarName '$comment_char') (' ') (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(gettext)} {(DQ ('Note that empty commits are commented out'))}) ] ) ) ) } ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$todo'))} ) ] ) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(has_action)} {(DQ ($ VSub_DollarName '$todo'))}) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(2)}) ] ) (C {(cp)} {(DQ ($ VSub_DollarName '$todo'))} {(DQ ($ VSub_DollarName '$todo')) (.backup)}) (C {(collapse_todo_ids)}) (command.AndOr ops: [Op_DPipe] children: [ (C {(git_sequence_editor)} {(DQ ($ VSub_DollarName '$todo'))}) (C {(die_abort)} { (DQ (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(gettext)} {(DQ ('Could not execute editor'))})] ) ) ) } ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(has_action)} {(DQ ($ VSub_DollarName '$todo'))}) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(2)}) ] ) (C {(check_todo_list)}) (C {(expand_todo_ids)}) (command.AndOr ops: [Op_DPipe Op_DPipe] children: [ (C {(test)} {(-d)} {(DQ ($ VSub_DollarName '$rewritten'))}) (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$force_rebase'))}) (C {(skip_unnecessary_picks)}) ] ) (C {(checkout_onto)}) (C {(do_rest)}) ] ) ) (C {(git_rebase__interactive)}) ] )