(List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('SUBDIRECTORY_OK', {[LIT_CHARS Yes]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('OPTIONS_KEEPDASHDASH', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('OPTIONS_SPEC', {[DQ [LIT_CHARS "git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>]\n"][LIT_CHARS "git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]\n"][LIT_CHARS "git-rebase [-i] --continue | --abort | --skip\n"][LIT_CHARS "--\n"][LIT_CHARS " Available options are\n"][LIT_CHARS "v,verbose! display a diffstat of what changed upstream\n"][LIT_CHARS "q,quiet! be quiet. implies --no-stat\n"][LIT_CHARS "onto=! rebase onto given branch instead of upstream\n"][LIT_CHARS "p,preserve-merges! try to recreate merges instead of ignoring them\n"][LIT_CHARS "s,strategy=! use the given merge strategy\n"][LIT_CHARS "no-ff! cherry-pick all commits, even if unchanged\n"][LIT_CHARS "m,merge! use merging strategies to rebase\n"][LIT_CHARS "i,interactive! let the user edit the list of commits to rebase\n"][LIT_CHARS "x,exec=! add exec lines after each commit of the editable list\n"][LIT_CHARS "k,keep-empty\t preserve empty commits during rebase\n"][LIT_CHARS "f,force-rebase! force rebase even if branch is up to date\n"][LIT_CHARS "X,strategy-option=! pass the argument through to the merge strategy\n"][LIT_CHARS "stat! display a diffstat of what changed upstream\n"][LIT_CHARS "n,no-stat! do not show diffstat of what changed upstream\n"][LIT_CHARS "verify allow pre-rebase hook to run\n"][LIT_CHARS "rerere-autoupdate allow rerere to update index with resolved conflicts\n"][LIT_CHARS "root! rebase all reachable commits up to the root(s)\n"][LIT_CHARS "autosquash move commits that begin with squash!/fixup! under -i\n"][LIT_CHARS "committer-date-is-author-date! passed to 'git am'\n"][LIT_CHARS "ignore-date! passed to 'git am'\n"][LIT_CHARS "whitespace=! passed to 'git apply'\n"][LIT_CHARS "ignore-whitespace! passed to 'git apply'\n"][LIT_CHARS "C=! passed to 'git apply'\n"][LIT_CHARS " Actions:\n"][LIT_CHARS "continue! continue\n"][LIT_CHARS "abort! abort and check out the original branch\n"][LIT_CHARS "skip! skip current patch and continue\n"]]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-setup]} ) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-i18n]} ) (Com {[LIT_CHARS set_reflog_action]} {[LIT_CHARS rebase]} ) (Com {[LIT_CHARS require_work_tree_exists]} ) (Com {[LIT_CHARS cd_to_toplevel]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('LF', {[SQ <LIT_CHARS "\n">]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('ok_to_skip_pre_rebase', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('resolvemsg', {[DQ [LIT_CHARS "\n"][ComSub (Com {[LIT_CHARS gettext]} {[SQ <LIT_CHARS "When you have resolved this problem, run \"git rebase --continue\".\n"> <LIT_CHARS "If you prefer to skip this patch, run \"git rebase --skip\" instead.\n"> <LIT_CHARS "To check out the original branch and stop rebasing, run \"git rebase --abort\".">]})][LIT_CHARS "\n"]]})]) (Com {[LIT_CHARS unset]} {[LIT_CHARS onto]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('cmd', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('strategy', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('strategy_opts', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('do_merge', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('merge_dir', {[DQ [VarSub GIT_DIR]] [LIT_CHARS /rebase-merge]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('apply_dir', {[DQ [VarSub GIT_DIR]] [LIT_CHARS /rebase-apply]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('verbose', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('diffstat', {[SQ ]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS rebase.stat]})]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS true]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('diffstat', {[LIT_CHARS t]})]) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('git_am_opt', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('rebase_root', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('force_rebase', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('allow_rerere_autoupdate', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('in_progress', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('type', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('state_dir', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('action', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('preserve_merges', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('autosquash', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('keep_empty', {[SQ ]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS rebase.autosquash]})]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('autosquash', {[LIT_CHARS t]})]) ) (FunctionDef read_basic_state [] (List (AndOr OP_AND_IF (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('head_name', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /head-name]})]})]) (AndOr OP_AND_IF (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('onto', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /onto]})]})]) (AndOr OP_AND_IF (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub state_dir]] [LIT_CHARS /orig-head]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('orig_head', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /orig-head]})]})]) (ElseTrue) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('orig_head', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /head]})]})]) ) (AndOr OP_AND_IF (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('GIT_QUIET', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /quiet]})]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub state_dir]] [LIT_CHARS /verbose]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('verbose', {[LIT_CHARS t]})]) ) ) ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub state_dir]] [LIT_CHARS /strategy]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('strategy', {[DQ [ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /strategy]})]]})]) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub state_dir]] [LIT_CHARS /strategy_opts]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('strategy_opts', {[DQ [ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /strategy_opts]})]]})]) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub state_dir]] [LIT_CHARS /allow_rerere_autoupdate]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('allow_rerere_autoupdate', {[DQ [ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /allow_rerere_autoupdate]})]]})]) ) ) ) (FunctionDef write_basic_state [] (List (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [VarSub head_name]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir]] [LIT_CHARS /head-name]} <REDIR_GREAT ">"> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [VarSub onto]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir]] [LIT_CHARS /onto]} <REDIR_GREAT ">"> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [VarSub orig_head]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir]] [LIT_CHARS /orig-head]} <REDIR_GREAT ">"> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [VarSub GIT_QUIET]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir]] [LIT_CHARS /quiet]} <REDIR_GREAT ">"> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS t]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub verbose]]} ) (Com {[LIT_OTHER ":"]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir]] [LIT_CHARS /verbose]} <REDIR_GREAT ">"> 1), > ) ) ) ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub strategy]]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub strategy]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir]] [LIT_CHARS /strategy]} <REDIR_GREAT ">"> 1), > ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub strategy_opts]]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub strategy_opts]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir]] [LIT_CHARS /strategy_opts]} <REDIR_GREAT ">"> 1), > ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub allow_rerere_autoupdate]]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub allow_rerere_autoupdate]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir]] [LIT_CHARS /allow_rerere_autoupdate]} <REDIR_GREAT ">"> 1), > ) ) ) ) (FunctionDef output [] (Case to_match={[DQ [VarSub verbose]]}, pat_word_list=[[{[SQ ]}], [{[LIT_OTHER "*"]}]] (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('output', {[ComSub (Com redirects=[(DescriptorRedirectNode target={[LIT_CHARS 1]} <REDIR_GREATAND "2>&"> 2)]{[DQ [VarSub @]]})]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('status', {[VarSub ?]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[VarSub status]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "%s"][\ LIT_ESCAPED_CHAR "\\n"]]} {[DQ [VarSub output]]} ) ) (Com {[LIT_CHARS return]} {[VarSub status]} ) ) (Com {[DQ [VarSub @]]} ) ) ) (FunctionDef move_to_original_branch [] (Case to_match={[DQ [VarSub head_name]]}, pat_word_list=[[{[LIT_CHARS refs/] [LIT_OTHER "*"]}]] (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('message', {[DQ [LIT_CHARS "rebase finished: "][VarSub head_name][LIT_CHARS " onto "][VarSub onto]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS update-ref]} {[LIT_CHARS -m]} {[DQ [VarSub message]]} {[VarSub head_name]} {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]})]} {[VarSub orig_head]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS symbolic-ref]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "rebase finished: returning to "][VarSub head_name]]} {[LIT_CHARS HEAD]} {[VarSub head_name]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "Could not move back to "][VarSub head_name]]})]]} ) ) ) ) ) ) (FunctionDef run_specific_rebase [] (List (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub interactive_rebase]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS implied]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('GIT_EDITOR', {[LIT_OTHER ":"]})]) (= scope=<EAssignScope.GLOBAL 1> flags=1 words=[{[LIT_CHARS GIT_EDITOR]}] bindings=[]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('autosquash', {[SQ ]})]) ) ) (Com {[LIT_CHARS .]} {[LIT_CHARS git-rebase--] [VarSub type]} ) ) ) (FunctionDef run_pre_rebase_hook [] (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub ok_to_skip_pre_rebase]]} ) (Com {[LIT_CHARS test]} {[LIT_CHARS -x]} {[DQ [VarSub GIT_DIR][LIT_CHARS /hooks/pre-rebase]]} ) ) (AndOr OP_OR_IF (Com {[DQ [VarSub GIT_DIR][LIT_CHARS /hooks/pre-rebase]]} {[VarSub 1 test_op=VS_TEST_PLUS {[DQ [VarSub @]]}]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "The pre-rebase hook refused to rebase."]]})]]} ) ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub apply_dir]] [LIT_CHARS /applying]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "It looks like git-am is in progress. Cannot rebase."]]})]]} ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[DQ [VarSub apply_dir]]} ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('type', {[LIT_CHARS am]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('state_dir', {[DQ [VarSub apply_dir]]})]) ) (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[DQ [VarSub merge_dir]]} ) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub merge_dir]] [LIT_CHARS /interactive]} ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('type', {[LIT_CHARS interactive]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('interactive_rebase', {[LIT_CHARS explicit]})]) ) (ElseTrue) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('type', {[LIT_CHARS merge]})]) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('state_dir', {[DQ [VarSub merge_dir]]})]) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub type]]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('in_progress', {[LIT_CHARS t]})]) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('total_argc', {[VarSub #]})]) (While (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} ) (List (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS --no-verify]}], [{[LIT_CHARS --verify]}], [{[LIT_CHARS --continue]}, {[LIT_CHARS --skip]}, {[LIT_CHARS --abort]}], [{[LIT_CHARS --onto]}], [{[LIT_CHARS -x]}], [{[LIT_CHARS -i]}], [{[LIT_CHARS -k]}], [{[LIT_CHARS -p]}], [{[LIT_CHARS --autosquash]}], [{[LIT_CHARS --no-autosquash]}], [{[LIT_CHARS -M]}, {[LIT_CHARS -m]}], [{[LIT_CHARS -X]}], [{[LIT_CHARS -s]}], [{[LIT_CHARS -n]}], [{[LIT_CHARS --stat]}], [{[LIT_CHARS -v]}], [{[LIT_CHARS -q]}], [{[LIT_CHARS --whitespace]}], [{[LIT_CHARS --ignore-whitespace]}], [{[LIT_CHARS --committer-date-is-author-date]}, {[LIT_CHARS --ignore-date]}], [{[LIT_CHARS -C]}], [{[LIT_CHARS --root]}], [{[LIT_CHARS -f]}, {[LIT_CHARS --no-ff]}], [{[LIT_CHARS --rerere-autoupdate]}, {[LIT_CHARS --no-rerere-autoupdate]}], [{[LIT_CHARS --]}]] (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('ok_to_skip_pre_rebase', {[LIT_CHARS yes]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('ok_to_skip_pre_rebase', {[SQ ]})]) (List (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[VarSub total_argc]} {[LIT_CHARS -eq]} {[LIT_CHARS 2]} ) (Com {[LIT_CHARS usage]} ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('action', {[VarSub 1 transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS --]}]]})]) ) (List (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS 2]} {[LIT_CHARS -le]} {[DQ [VarSub #]]} ) (Com {[LIT_CHARS usage]} ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('onto', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS shift]} ) ) (List (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS 2]} {[LIT_CHARS -le]} {[DQ [VarSub #]]} ) (Com {[LIT_CHARS usage]} ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('cmd', {[DQ [VarSub cmd][LIT_CHARS "exec "][VarSub 2][VarSub LF]]})]) (Com {[LIT_CHARS shift]} ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('interactive_rebase', {[LIT_CHARS explicit]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('keep_empty', {[LIT_CHARS yes]})]) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('preserve_merges', {[LIT_CHARS t]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub interactive_rebase]]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('interactive_rebase', {[LIT_CHARS implied]})]) ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('autosquash', {[LIT_CHARS t]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('autosquash', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('do_merge', {[LIT_CHARS t]})]) (List (Com {[LIT_CHARS shift]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('strategy_opts', {[DQ [VarSub strategy_opts][LIT_CHARS " "][ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --sq-quote]} {[DQ [LIT_CHARS --][VarSub 1]]})]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('do_merge', {[LIT_CHARS t]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub strategy]]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('strategy', {[LIT_CHARS recursive]})]) ) ) (List (Com {[LIT_CHARS shift]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('strategy', {[DQ [VarSub 1]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('do_merge', {[LIT_CHARS t]})]) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('diffstat', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('diffstat', {[LIT_CHARS t]})]) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('verbose', {[LIT_CHARS t]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('diffstat', {[LIT_CHARS t]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('GIT_QUIET', {[SQ ]})]) ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('GIT_QUIET', {[LIT_CHARS t]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('git_am_opt', {[DQ [VarSub git_am_opt][LIT_CHARS " -q"]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('verbose', {[SQ ]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('diffstat', {[SQ ]})]) ) (List (Com {[LIT_CHARS shift]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('git_am_opt', {[DQ [VarSub git_am_opt][LIT_CHARS " --whitespace="][VarSub 1]]})]) (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS fix]}, {[LIT_CHARS strip]}]] (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('force_rebase', {[LIT_CHARS t]})]) ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('git_am_opt', {[DQ [VarSub git_am_opt][LIT_CHARS " "][VarSub 1]]})]) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('git_am_opt', {[DQ [VarSub git_am_opt][LIT_CHARS " "][VarSub 1]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('force_rebase', {[LIT_CHARS t]})]) ) (List (Com {[LIT_CHARS shift]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('git_am_opt', {[DQ [VarSub git_am_opt][LIT_CHARS " -C"][VarSub 1]]})]) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('rebase_root', {[LIT_CHARS t]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('force_rebase', {[LIT_CHARS t]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('allow_rerere_autoupdate', {[DQ [VarSub 1]]})]) (List (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS break]} ) ) ) (Com {[LIT_CHARS shift]} ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_CHARS -gt]} {[LIT_CHARS 2]} ) (Com {[LIT_CHARS usage]} ) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub cmd]]} ) (Com {[LIT_CHARS test]} {[DQ [VarSub interactive_rebase]]} {[LIT_NEQUAL "!="]} {[LIT_CHARS explicit]} ) ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "The --exec option must be used with the --interactive option"]]})]]} ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub action]]} ) (List (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub in_progress]]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "No rebase in progress?"]]})]]} ) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub type]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS interactive]} ) (Com {[LIT_CHARS test]} {[DQ [VarSub GIT_REFLOG_ACTION]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS rebase]} ) ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('GIT_REFLOG_ACTION', {[DQ [LIT_CHARS "rebase -i ("][VarSub action][LIT_CHARS ")"]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=1 words=[{[LIT_CHARS GIT_REFLOG_ACTION]}] bindings=[]) ) ) ) ) (Case to_match={[DQ [VarSub action]]}, pat_word_list=[[{[LIT_CHARS continue]}], [{[LIT_CHARS skip]}], [{[LIT_CHARS abort]}]] (List (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[LIT_CHARS HEAD]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} <REDIR_GREAT ">"> 1), > ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "Cannot read HEAD"]]})]]} ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --ignore-submodules]} {[LIT_CHARS --refresh]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS diff-files]} {[LIT_CHARS --quiet]} {[LIT_CHARS --ignore-submodules]} ) (List (Com {[LIT_CHARS echo]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "You must edit all merge conflicts and then\n"][LIT_CHARS "mark them as resolved using git add"]]})]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (Com {[LIT_CHARS read_basic_state]} ) (Com {[LIT_CHARS run_specific_rebase]} ) ) (List (AndOr OP_OR_IF (Com {[LIT_CHARS output]} {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS --hard]} {[LIT_CHARS HEAD]} ) (Com {[LIT_CHARS exit]} {[VarSub ?]} ) ) (Com {[LIT_CHARS read_basic_state]} ) (Com {[LIT_CHARS run_specific_rebase]} ) ) (List (Com {[LIT_CHARS git]} {[LIT_CHARS rerere]} {[LIT_CHARS clear]} ) (Com {[LIT_CHARS read_basic_state]} ) (Case to_match={[DQ [VarSub head_name]]}, pat_word_list=[[{[LIT_CHARS refs/] [LIT_OTHER "*"]}]] (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS symbolic-ref]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "rebase: aborting"]]} {[LIT_CHARS HEAD]} {[VarSub head_name]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [LIT_CHARS "Could not move back to "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS head_name]]})]]} ) ) ) (Com {[LIT_CHARS output]} {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS --hard]} {[VarSub orig_head]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -r]} {[DQ [VarSub state_dir]]} ) (Com {[LIT_CHARS exit]} ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub in_progress]]} ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('state_dir_base', {[VarSub state_dir transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('cmd_live_rebase', {[DQ [LIT_CHARS "git rebase (--continue | --abort | --skip)"]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('cmd_clear_stale_rebase', {[DQ [LIT_CHARS "rm -fr "][\ LIT_ESCAPED_CHAR "\\\""][VarSub state_dir][\ LIT_ESCAPED_CHAR "\\\""]]})]) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "\n"][ComSub (Com {[LIT_CHARS eval_gettext]} {[SQ <LIT_CHARS "It seems that there is already a $state_dir_base directory, and\n"> <LIT_CHARS "I wonder if you are in the middle of another rebase. If that is the\n"> <LIT_CHARS "case, please try\n"> <LIT_CHARS "\t$cmd_live_rebase\n"> <LIT_CHARS "If that is not the case, please\n"> <LIT_CHARS "\t$cmd_clear_stale_rebase\n"> <LIT_CHARS "and run me again. I am stopping in case you still have something\n"> <LIT_CHARS "valuable there.">]})]]} ) ) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub rebase_root]]} ) (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub onto]]} ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub interactive_rebase]]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('interactive_rebase', {[LIT_CHARS implied]})]) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub interactive_rebase]]} ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('type', {[LIT_CHARS interactive]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('state_dir', {[DQ [VarSub merge_dir]]})]) ) (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub do_merge]]} ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('type', {[LIT_CHARS merge]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('state_dir', {[DQ [VarSub merge_dir]]})]) ) (ElseTrue) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('type', {[LIT_CHARS am]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('state_dir', {[DQ [VarSub apply_dir]]})]) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub rebase_root]]} ) (List (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 0]}], [{[LIT_OTHER "*"]}]] (If (Pipeline! (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('upstream_name', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} <REDIR_GREAT "2>"> 2)]{[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --symbolic-full-name]} {[LIT_CHARS --verify]} {[LIT_CHARS -q]} {[LIT_OTHER "@"] [LIT_LBRACE "{"] [LIT_CHARS upstream] [LIT_RBRACE "}"]})]})]) ) (List (Com {[LIT_CHARS .]} {[LIT_CHARS git-parse-remote]} ) (Com {[LIT_CHARS error_on_missing_default_upstream]} {[DQ [LIT_CHARS rebase]]} {[DQ [LIT_CHARS rebase]]} {[DQ [LIT_CHARS against]]} {[DQ [LIT_CHARS "git rebase <branch>"]]} ) ) ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('upstream_name', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]} ) ) ) (AndOr OP_OR_IF (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('upstream', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[DQ [VarSub upstream_name][LIT_CHARS "^0"]]})]})]) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [LIT_CHARS "invalid upstream "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS upstream_name]]})]]} ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('upstream_arg', {[DQ [VarSub upstream_name]]})]) ) (ElseTrue) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub onto]]} ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('empty_tree', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS hash-object]} {[LIT_CHARS -t]} {[LIT_CHARS tree]} {[LIT_CHARS /dev/null]})]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('onto', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} <REDIR_LESS "<"> 0)]{[LIT_CHARS git]} {[LIT_CHARS commit-tree]} {[VarSub empty_tree]})]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('squash_onto', {[DQ [VarSub onto]]})]) ) ) (Com {[LIT_CHARS unset]} {[LIT_CHARS upstream_name]} ) (Com {[LIT_CHARS unset]} {[LIT_CHARS upstream]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_CHARS -gt]} {[LIT_CHARS 1]} ) (Com {[LIT_CHARS usage]} ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('upstream_arg', {[LIT_CHARS --root]})]) ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('onto_name', {[VarSub onto test_op=VS_TEST_HYPHEN {[DQ [VarSub upstream_name]]}]})]) (Case to_match={[DQ [VarSub onto_name]]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_CHARS ...] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (If (AndOr OP_AND_IF (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('left', {[VarSub onto_name transform_ops=[VS_UNARY_PERCENT {[LIT_CHARS "...*"]}]]}), ('right', {[VarSub onto_name transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*..."]}]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('onto', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS merge-base]} {[LIT_CHARS --all]} {[VarSub left test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS HEAD]}]} {[VarSub right test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS HEAD]}]})]})]) ) (Case to_match={[DQ [VarSub onto]]}, pat_word_list=[[{[LIT_OTHER "?"] [LIT_OTHER "*"] [DQ [VarSub LF]] [LIT_OTHER "?"] [LIT_OTHER "*"]}], [{[SQ ]}]] (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "onto_name: there are more than one merge bases"]]})]]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "onto_name: there is no merge base"]]})]]} ) ) (ElseTrue) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "onto_name: there is no merge base"]]})]]} ) ) (AndOr OP_OR_IF (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('onto', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[DQ [VarSub onto_name][LIT_CHARS "^0"]]})]})]) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [LIT_CHARS "Does not point to a valid commit: "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS onto_name]]})]]} ) ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('switch_to', {[SQ ]})]) (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 1]}], [{[LIT_CHARS 0]}], [{[LIT_OTHER "*"]}]] (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('branch_name', {[DQ [VarSub 1]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('switch_to', {[DQ [VarSub 1]]})]) (If (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS show-ref]} {[LIT_CHARS --verify]} {[LIT_CHARS --quiet]} {[LIT_CHARS --]} {[DQ [LIT_CHARS refs/heads/][VarSub 1]]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('orig_head', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS -q]} {[LIT_CHARS --verify]} {[DQ [LIT_CHARS refs/heads/][VarSub 1]]})]})]) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('head_name', {[DQ [LIT_CHARS refs/heads/][VarSub 1]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('orig_head', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS -q]} {[LIT_CHARS --verify]} {[DQ [VarSub 1]]})]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('head_name', {[DQ [LIT_CHARS "detached HEAD"]]})]) (ElseTrue) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [LIT_CHARS "fatal: no such branch: "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS branch_name]]})]]} ) ) ) (List (If (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('branch_name', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS symbolic-ref]} {[LIT_CHARS -q]} {[LIT_CHARS HEAD]})]})]) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('head_name', {[VarSub branch_name]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('branch_name', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub branch_name]]} {[LIT_OTHER ":"]} {[SQ <LIT_CHARS "zrefs/heads/\\(.*\\)">]})]})]) ) (ElseTrue) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('head_name', {[DQ [LIT_CHARS "detached HEAD"]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('branch_name', {[LIT_CHARS HEAD]})]) (Com {[LIT_OTHER "#"]} {[LIT_CHARS detached]} ) ) ) (AndOr OP_OR_IF (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('orig_head', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[DQ [VarSub branch_name][LIT_CHARS "^0"]]})]})]) (Com {[LIT_CHARS exit]} ) ) ) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "BUG: unexpected number of arguments left to parse"]]} ) ) (Com {[LIT_CHARS require_clean_work_tree]} {[DQ [LIT_CHARS rebase]]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "Please commit or stash them."]]})]]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('mb', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS merge-base]} {[DQ [VarSub onto]]} {[DQ [VarSub orig_head]]})]})]) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub type]]} {[LIT_NEQUAL "!="]} {[LIT_CHARS interactive]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub upstream]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub onto]]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub mb]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub onto]]} ) (Pipeline! (Subshell (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS rev-list]} {[LIT_CHARS --parents]} {[DQ [VarSub onto]] [LIT_CHARS ..] [DQ [VarSub orig_head]]} ) (Com {[LIT_CHARS sane_grep]} {[DQ [LIT_CHARS " .* "]]} ) ) ) ) ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub force_rebase]]} ) (List (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub switch_to]]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS checkout]} {[DQ [VarSub switch_to]]} {[LIT_CHARS --]} ) ) (Com {[LIT_CHARS say]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [LIT_CHARS "Current branch "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "branch_name is up to date."]]})]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]} ) ) (ElseTrue) (Com {[LIT_CHARS say]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [LIT_CHARS "Current branch "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "branch_name is up to date, rebase forced."]]})]]} ) ) ) (Com {[LIT_CHARS run_pre_rebase_hook]} {[DQ [VarSub upstream_arg]]} {[DQ [VarSub @]]} ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub diffstat]]} ) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub verbose]]} ) (Com {[LIT_CHARS echo]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [LIT_CHARS "Changes from "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "mb to "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "onto:"]]})]]} ) ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS --stat]} {[LIT_CHARS --summary]} {[DQ [VarSub mb]]} {[DQ [VarSub onto]]} more_env=[('GIT_PAGER', {[SQ ]})] ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub type]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS interactive]} ) (Com {[LIT_CHARS run_specific_rebase]} ) ) (Com {[LIT_CHARS say]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "First, rewinding head to replay your work on top of it..."]]})]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS checkout]} {[LIT_CHARS -q]} {[DQ [VarSub onto][LIT_CHARS "^0"]]} ) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "could not detach HEAD"]]} ) ) (Com {[LIT_CHARS git]} {[LIT_CHARS update-ref]} {[LIT_CHARS ORIG_HEAD]} {[VarSub orig_head]} ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub mb]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub orig_head]]} ) (List (Com {[LIT_CHARS say]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [LIT_CHARS "Fast-forwarded "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "branch_name to "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS onto_name.]]})]]} ) (Com {[LIT_CHARS move_to_original_branch]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]} ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub rebase_root]]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('revisions', {[DQ [VarSub onto][LIT_CHARS ..][VarSub orig_head]]})]) (ElseTrue) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('revisions', {[DQ [VarSub upstream][LIT_CHARS ..][VarSub orig_head]]})]) ) (Com {[LIT_CHARS run_specific_rebase]} ) )