(List (= scope= flags=0 words=[] bindings=[('USAGE', {[SQ ] ...">]})]) (= scope= flags=0 words=[] bindings=[('LONG_USAGE', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('SUBDIRECTORY_OK', {[LIT_CHARS Yes]})]) (= scope= flags=0 words=[] bindings=[('OPTIONS_SPEC', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-setup]} ) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-i18n]} ) (Com {[LIT_CHARS set_reflog_action]} {[DQ [LIT_CHARS pull][VarSub 1 test_op=VS_TEST_PLUS {[LIT_CHARS " "] [VarSub *]}]]} ) (Com {[LIT_CHARS require_work_tree_exists]} ) (Com {[LIT_CHARS cd_to_toplevel]} ) (FunctionDef die_conflict [] (List (Com {[LIT_CHARS git]} {[LIT_CHARS diff-index]} {[LIT_CHARS --cached]} {[LIT_CHARS --name-status]} {[LIT_CHARS -r]} {[LIT_CHARS --ignore-submodules]} {[LIT_CHARS HEAD]} {[LIT_CHARS --]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[ComSub (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS --get]} {[LIT_CHARS advice.resolveConflict]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS true]}) )]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "Pull is not possible because you have unmerged files.\n"][LIT_CHARS "Please, fix them up in the work tree, and then use 'git add/rm '\n"][LIT_CHARS "as appropriate to mark resolution, or use 'git commit -a'."]]})]]} ) (ElseTrue) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "Pull is not possible because you have unmerged files."]]})]]} ) ) ) ) (FunctionDef die_merge [] (If (Com {[LIT_DBRACKET_LIKE "["]} {[ComSub (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS --get]} {[LIT_CHARS advice.resolveConflict]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS true]}) )]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "You have not concluded your merge (MERGE_HEAD exists).\n"][LIT_CHARS "Please, commit your changes before you can merge."]]})]]} ) (ElseTrue) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "You have not concluded your merge (MERGE_HEAD exists)."]]})]]} ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]} {[LIT_CHARS -u]})]]} ) (Com {[LIT_CHARS die_conflict]} ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_HEAD]]} ) (Com {[LIT_CHARS die_merge]} ) ) (= scope= flags=0 words=[] bindings=[('strategy_args', {[SQ ]}), ('diffstat', {[SQ ]}), ('no_commit', {[SQ ]}), ('squash', {[SQ ]}), ('no_ff', {[SQ ]}), ('ff_only', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('log_arg', {[SQ ]}), ('verbosity', {[SQ ]}), ('progress', {[SQ ]}), ('recurse_submodules', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('merge_args', {[SQ ]}), ('edit', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('curr_branch', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS symbolic-ref]} {[LIT_CHARS -q]} {[LIT_CHARS HEAD]})]})]) (= scope= flags=0 words=[] bindings=[('curr_branch_short', {[DQ [VarSub curr_branch transform_ops=[VS_UNARY_POUND {[LIT_CHARS refs] [LIT_SLASH /] [LIT_CHARS heads] [LIT_SLASH /]}]]]})]) (= scope= flags=0 words=[] bindings=[('rebase', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS branch.] [VarSub curr_branch_short] [LIT_CHARS .rebase]})]})]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub rebase]]} ) (= scope= flags=0 words=[] bindings=[('rebase', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS pull.rebase]})]})]) ) (= scope= flags=0 words=[] bindings=[('dry_run', {[SQ ]})]) (While (Com {[LIT_OTHER ":"]} ) (List (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS -q]}, {[LIT_CHARS --quiet]}], [{[LIT_CHARS -v]}, {[LIT_CHARS --verbose]}], [{[LIT_CHARS --progress]}], [{[LIT_CHARS --no-progress]}], [{[LIT_CHARS -n]}, {[LIT_CHARS --no-stat]}, {[LIT_CHARS --no-summary]}], [{[LIT_CHARS --stat]}, {[LIT_CHARS --summary]}], [{[LIT_CHARS --log]}, {[LIT_CHARS --no-log]}], [{[LIT_CHARS --no-c]}, {[LIT_CHARS --no-co]}, {[LIT_CHARS --no-com]}, {[LIT_CHARS --no-comm]}, {[LIT_CHARS --no-commi]}, {[LIT_CHARS --no-commit]}], [{[LIT_CHARS --c]}, {[LIT_CHARS --co]}, {[LIT_CHARS --com]}, {[LIT_CHARS --comm]}, {[LIT_CHARS --commi]}, {[LIT_CHARS --commit]}], [{[LIT_CHARS -e]}, {[LIT_CHARS --edit]}], [{[LIT_CHARS --no-edit]}], [{[LIT_CHARS --sq]}, {[LIT_CHARS --squ]}, {[LIT_CHARS --squa]}, {[LIT_CHARS --squas]}, {[LIT_CHARS --squash]}], [{[LIT_CHARS --no-sq]}, {[LIT_CHARS --no-squ]}, {[LIT_CHARS --no-squa]}, {[LIT_CHARS --no-squas]}, {[LIT_CHARS --no-squash]}], [{[LIT_CHARS --ff]}], [{[LIT_CHARS --no-ff]}], [{[LIT_CHARS --ff-only]}], [{[LIT_CHARS -s] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}, {[LIT_CHARS --s] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}, {[LIT_CHARS --st] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}, {[LIT_CHARS --str] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}, {[LIT_CHARS --stra] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}, {[LIT_CHARS --strat] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}, {[LIT_CHARS --strate] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}, {[LIT_CHARS --strateg] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}, {[LIT_CHARS --strategy] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}, {[LIT_CHARS -s]}, {[LIT_CHARS --s]}, {[LIT_CHARS --st]}, {[LIT_CHARS --str]}, {[LIT_CHARS --stra]}, {[LIT_CHARS --strat]}, {[LIT_CHARS --strate]}, {[LIT_CHARS --strateg]}, {[LIT_CHARS --strategy]}], [{[LIT_CHARS -X] [LIT_OTHER "*"]}], [{[LIT_CHARS -r]}, {[LIT_CHARS --r]}, {[LIT_CHARS --re]}, {[LIT_CHARS --reb]}, {[LIT_CHARS --reba]}, {[LIT_CHARS --rebas]}, {[LIT_CHARS --rebase]}], [{[LIT_CHARS --no-r]}, {[LIT_CHARS --no-re]}, {[LIT_CHARS --no-reb]}, {[LIT_CHARS --no-reba]}, {[LIT_CHARS --no-rebas]}, {[LIT_CHARS --no-rebase]}], [{[LIT_CHARS --recurse-submodules]}], [{[LIT_CHARS --recurse-submodules] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}], [{[LIT_CHARS --no-recurse-submodules]}], [{[LIT_CHARS --d]}, {[LIT_CHARS --dr]}, {[LIT_CHARS --dry]}, {[LIT_CHARS --dry-]}, {[LIT_CHARS --dry-r]}, {[LIT_CHARS --dry-ru]}, {[LIT_CHARS --dry-run]}], [{[LIT_CHARS -h]}, {[LIT_CHARS --help-all]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('verbosity', {[DQ [VarSub verbosity][LIT_CHARS " -q"]]})]) (= scope= flags=0 words=[] bindings=[('verbosity', {[DQ [VarSub verbosity][LIT_CHARS " -v"]]})]) (= scope= flags=0 words=[] bindings=[('progress', {[LIT_CHARS --progress]})]) (= scope= flags=0 words=[] bindings=[('progress', {[LIT_CHARS --no-progress]})]) (= scope= flags=0 words=[] bindings=[('diffstat', {[LIT_CHARS --no-stat]})]) (= scope= flags=0 words=[] bindings=[('diffstat', {[LIT_CHARS --stat]})]) (= scope= flags=0 words=[] bindings=[('log_arg', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('no_commit', {[LIT_CHARS --no-commit]})]) (= scope= flags=0 words=[] bindings=[('no_commit', {[LIT_CHARS --commit]})]) (= scope= flags=0 words=[] bindings=[('edit', {[LIT_CHARS --edit]})]) (= scope= flags=0 words=[] bindings=[('edit', {[LIT_CHARS --no-edit]})]) (= scope= flags=0 words=[] bindings=[('squash', {[LIT_CHARS --squash]})]) (= scope= flags=0 words=[] bindings=[('squash', {[LIT_CHARS --no-squash]})]) (= scope= flags=0 words=[] bindings=[('no_ff', {[LIT_CHARS --ff]})]) (= scope= flags=0 words=[] bindings=[('no_ff', {[LIT_CHARS --no-ff]})]) (= scope= flags=0 words=[] bindings=[('ff_only', {[LIT_CHARS --ff-only]})]) (List (Case to_match={[DQ [VarSub #][LIT_CHARS ","][VarSub 1]]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_OTHER "*"] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}], [{[LIT_CHARS 1] [LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('strategy', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub 1]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (Com {[LIT_CHARS usage]} ) (List (= scope= flags=0 words=[] bindings=[('strategy', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS shift]} ) ) ) (= scope= flags=0 words=[] bindings=[('strategy_args', {[DQ [VarSub strategy_args][LIT_CHARS "-s "][VarSub strategy][LIT_CHARS " "]]})]) ) (List (Case to_match={[DQ [VarSub #][LIT_CHARS ","][VarSub 1]]}, pat_word_list=[[{[LIT_CHARS 1] [LIT_COMMA ","] [LIT_CHARS -X]}], [{[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_CHARS -X]}], [{[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS usage]} ) (List (= scope= flags=0 words=[] bindings=[('xx', {[DQ [LIT_CHARS "-X "][ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --sq-quote]} {[DQ [VarSub 2]]})]]})]) (Com {[LIT_CHARS shift]} ) ) (= scope= flags=0 words=[] bindings=[('xx', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --sq-quote]} {[DQ [VarSub 1]]})]})]) ) (= scope= flags=0 words=[] bindings=[('merge_args', {[DQ [VarSub merge_args][VarSub xx][LIT_CHARS " "]]})]) ) (= scope= flags=0 words=[] bindings=[('rebase', {[LIT_CHARS true]})]) (= scope= flags=0 words=[] bindings=[('rebase', {[LIT_CHARS false]})]) (= scope= flags=0 words=[] bindings=[('recurse_submodules', {[LIT_CHARS --recurse-submodules]})]) (= scope= flags=0 words=[] bindings=[('recurse_submodules', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('recurse_submodules', {[LIT_CHARS --no-recurse-submodules]})]) (= scope= flags=0 words=[] bindings=[('dry_run', {[LIT_CHARS --dry-run]})]) (Com {[LIT_CHARS usage]} ) (Com {[LIT_CHARS break]} ) ) (Com {[LIT_CHARS shift]} ) ) ) (FunctionDef error_on_no_merge_candidates [] (List (Com {[LIT_CHARS exec]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (For opt do_arg_iter) (Case to_match={[DQ [VarSub opt]]}, pat_word_list=[[{[LIT_CHARS -t]}, {[LIT_CHARS --t]}, {[LIT_CHARS --ta]}, {[LIT_CHARS --tag]}, {[LIT_CHARS --tags]}]] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Fetching tags only, you probably meant:"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " git fetch --tags"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS true]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub rebase]]} ) (List (= scope= flags=0 words=[] bindings=[('op_type', {[LIT_CHARS rebase]})]) (= scope= flags=0 words=[] bindings=[('op_prep', {[LIT_CHARS against]})]) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('op_type', {[LIT_CHARS merge]})]) (= scope= flags=0 words=[] bindings=[('op_prep', {[LIT_CHARS with]})]) ) ) (= scope= flags=0 words=[] bindings=[('curr_branch', {[VarSub curr_branch transform_ops=[VS_UNARY_POUND {[LIT_CHARS refs] [LIT_SLASH /] [LIT_CHARS heads] [LIT_SLASH /]}]]})]) (= scope= flags=0 words=[] bindings=[('upstream', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[DQ [LIT_CHARS branch.][VarSub curr_branch][LIT_CHARS .merge]]})]})]) (= scope= flags=0 words=[] bindings=[('remote', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[DQ [LIT_CHARS branch.][VarSub curr_branch][LIT_CHARS .remote]]})]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub #]} {[LIT_CHARS -gt]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]} ) (List (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub rebase]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS true]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "There is no candidate for rebasing against "]]} ) (ElseTrue) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "There are no candidates for merging "]]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "among the refs that you just fetched."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Generally this means that you provided a wildcard refspec which had no"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "matches on the remote end."]]} ) ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub #]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub 1]]} {[LIT_NEQUAL "!="]} {[DQ [VarSub remote]]} {[LIT_DBRACKET_LIKE "]"]} ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "You asked to pull from the remote '"][VarSub 1][LIT_CHARS "', but did not specify"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "a branch. Because this is not the default configured remote"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "for your current branch, you must specify a branch on the command line."]]} ) ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub curr_branch]]} {[LIT_CHARS -o]} {[LIT_CHARS -z]} {[DQ [VarSub upstream]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS .]} {[LIT_CHARS git-parse-remote]} ) (Com {[LIT_CHARS error_on_missing_default_upstream]} {[DQ [LIT_CHARS pull]]} {[VarSub op_type]} {[VarSub op_prep]} {[DQ [LIT_CHARS "git pull "]]} ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Your configuration specifies to "][VarSub op_type][LIT_CHARS " "][VarSub op_prep][LIT_CHARS " the ref '"][VarSub upstream transform_ops=[VS_UNARY_POUND {[LIT_CHARS refs] [LIT_SLASH /] [LIT_CHARS heads] [LIT_SLASH /]}]][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "from the remote, but no such ref was fetched."]]} ) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS true]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub rebase]]} ) (List (If (Pipeline! (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS -q]} {[LIT_CHARS --verify]} {[LIT_CHARS HEAD]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /index]]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "updating an unborn branch with changes added to the index"]]})]]} ) ) (ElseTrue) (Com {[LIT_CHARS require_clean_work_tree]} {[DQ [LIT_CHARS "pull with rebase"]]} {[DQ [LIT_CHARS "Please commit or stash them."]]} ) ) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('oldremoteref', {[SQ ]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS .]} {[LIT_CHARS git-parse-remote]} ) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('remoteref', {[DQ [ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS get_remote_merge_branch]} {[DQ [VarSub @]]})]]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('oldremoteref', {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS -q]} {[LIT_CHARS --verify]} {[DQ [VarSub remoteref]]})]]})]) (For reflog [{[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS rev-list]} {[LIT_CHARS -g]} {[VarSub remoteref]})]}]) (If (Com {[LIT_CHARS test]} {[DQ [VarSub reflog]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS merge-base]} {[VarSub reflog]} {[VarSub curr_branch]})]]} ) (List (= scope= flags=0 words=[] bindings=[('oldremoteref', {[DQ [VarSub reflog]]})]) (Com {[LIT_CHARS break]} ) ) ) ) ) ) ) ) ) ) (= scope= flags=0 words=[] bindings=[('orig_head', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS -q]} {[LIT_CHARS --verify]} {[LIT_CHARS HEAD]})]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS fetch]} {[VarSub verbosity]} {[VarSub progress]} {[VarSub dry_run]} {[VarSub recurse_submodules]} {[LIT_CHARS --update-head-ok]} {[DQ [VarSub @]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub dry_run]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]} ) ) (= scope= flags=0 words=[] bindings=[('curr_head', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS -q]} {[LIT_CHARS --verify]} {[LIT_CHARS HEAD]})]})]) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub orig_head]]} ) (Com {[LIT_CHARS test]} {[DQ [VarSub curr_head]]} {[LIT_NEQUAL "!="]} {[DQ [VarSub orig_head]]} ) ) (List (Com {[LIT_CHARS eval_gettextln]} {[DQ [LIT_CHARS "Warning: fetch updated the current branch head.\n"][LIT_CHARS "Warning: fast-forwarding your working tree from\n"][LIT_CHARS "Warning: commit "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS orig_head.]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS -q]} {[LIT_CHARS --refresh]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[LIT_CHARS -u]} {[LIT_CHARS -m]} {[DQ [VarSub orig_head]]} {[DQ [VarSub curr_head]]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS eval_gettext]} {[DQ [LIT_CHARS "Cannot fast-forward your working tree.\n"][LIT_CHARS "After making sure that you saved anything precious from\n"][LIT_OTHER "$"][LIT_CHARS " git diff "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "orig_head\n"][LIT_CHARS "output, run\n"][LIT_OTHER "$"][LIT_CHARS " git reset --hard\n"][LIT_CHARS "to recover."]]})]]} ) ) ) ) (= scope= flags=0 words=[] bindings=[('merge_head', {[ComSub (Pipeline (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /FETCH_HEAD]}) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]}) )]})]) (Case to_match={[DQ [VarSub merge_head]]}, pat_word_list=[[{[SQ ]}], [{[LIT_OTHER "?"] [LIT_OTHER "*"] [SQ ] [LIT_OTHER "?"] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS error_on_no_merge_candidates]} {[DQ [VarSub @]]} ) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub orig_head]]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "Cannot merge multiple branches into empty head"]]})]]} ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS true]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub rebase]]} ) (Com {[LIT_CHARS die]} {[DQ [ComSub (Com {[LIT_CHARS gettext]} {[DQ [LIT_CHARS "Cannot rebase onto multiple branches"]]})]]} ) ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub orig_head]]} ) (List (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS update-ref]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "initial pull"]]} {[LIT_CHARS HEAD]} {[VarSub merge_head]} {[DQ [VarSub curr_head]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[LIT_CHARS -m]} {[LIT_CHARS -u]} {[LIT_CHARS HEAD]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS exit]} ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS true]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub rebase]]} ) (List (= scope= flags=0 words=[] bindings=[('o', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS show-branch]} {[LIT_CHARS --merge-base]} {[VarSub curr_branch]} {[VarSub merge_head]} {[VarSub oldremoteref]})]})]) (If (Com {[LIT_CHARS test]} {[DQ [VarSub oldremoteref]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub o]]} ) (Com {[LIT_CHARS unset]} {[LIT_CHARS oldremoteref]} ) ) ) ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('merge_name', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[DQ [VarSub GIT_DIR][LIT_CHARS /FETCH_HEAD]]} 0)]{[LIT_CHARS git]} {[LIT_CHARS fmt-merge-msg]} {[VarSub log_arg]})]})]) (Com {[LIT_CHARS exit]} ) ) (Case to_match={[DQ [VarSub rebase]]}, pat_word_list=[[{[LIT_CHARS true]}], [{[LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('eval', {[DQ [LIT_CHARS "git-rebase "][VarSub diffstat][LIT_CHARS " "][VarSub strategy_args][LIT_CHARS " "][VarSub merge_args]]})]) (= scope= flags=0 words=[] bindings=[('eval', {[DQ [VarSub eval][LIT_CHARS " --onto "][VarSub merge_head][LIT_CHARS " "][VarSub oldremoteref test_op=VS_TEST_COLON_HYPHEN {[VarSub merge_head]}]]})]) ) (List (= scope= flags=0 words=[] bindings=[('eval', {[DQ [LIT_CHARS "git-merge "][VarSub diffstat][LIT_CHARS " "][VarSub no_commit][LIT_CHARS " "][VarSub edit][LIT_CHARS " "][VarSub squash][LIT_CHARS " "][VarSub no_ff][LIT_CHARS " "][VarSub ff_only]]})]) (= scope= flags=0 words=[] bindings=[('eval', {[DQ [VarSub eval][LIT_CHARS " "][VarSub log_arg][LIT_CHARS " "][VarSub strategy_args][LIT_CHARS " "][VarSub merge_args][LIT_CHARS " "][VarSub verbosity][LIT_CHARS " "][VarSub progress]]})]) (= scope= flags=0 words=[] bindings=[('eval', {[DQ [VarSub eval][LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS merge_name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " HEAD "][VarSub merge_head]]})]) ) ) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS "exec "][VarSub eval]]} ) )