(List (= scope= flags=0 words=[] bindings=[('prec', {[LIT_CHARS 4]})]) (FunctionDef read_state [] (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('onto_name', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /onto_name]})]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('end', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /end]})]})]) (= scope= flags=0 words=[] bindings=[('msgnum', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir]] [LIT_CHARS /msgnum]})]})]) ) ) ) (FunctionDef continue_merge [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[DQ [VarSub state_dir]]} ) (Com {[LIT_CHARS die]} {[DQ [VarSub state_dir][LIT_CHARS " directory does not exist"]]} ) ) (= scope= flags=0 words=[] bindings=[('unmerged', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]} {[LIT_CHARS -u]})]})]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub unmerged]]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "You still have unmerged paths in your index"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "did you forget to use git add?"]]} ) (Com {[LIT_CHARS die]} {[DQ [VarSub resolvemsg]]} ) ) ) (= scope= flags=0 words=[] bindings=[('cmt', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir][LIT_CHARS /current]]})]})]) (If (Pipeline! (Com {[LIT_CHARS git]} {[LIT_CHARS diff-index]} {[LIT_CHARS --quiet]} {[LIT_CHARS --ignore-submodules]} {[LIT_CHARS HEAD]} {[LIT_CHARS --]} ) ) (List (If (Pipeline! (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS --no-verify]} {[LIT_CHARS -C]} {[DQ [VarSub cmt]]} ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Commit failed, please do not call "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "git commit"][\ LIT_ESCAPED_CHAR "\\\""]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "directly, but instead do one of the following: "]]} ) (Com {[LIT_CHARS die]} {[DQ [VarSub resolvemsg]]} ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub GIT_QUIET]]} ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Committed: %0"][VarSub prec][LIT_CHARS "d "]]} {[VarSub msgnum]} ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub cmt][LIT_CHARS " "][ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_CHARS 0]})]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir][LIT_CHARS /rewritten]]} >"> 1), > ) ) (ElseTrue) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub GIT_QUIET]]} ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Already applied: %0"][VarSub prec][LIT_CHARS "d "]]} {[VarSub msgnum]} ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub GIT_QUIET]]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS --format] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "%"] [LIT_CHARS s]} {[LIT_CHARS -1]} {[DQ [VarSub cmt]]} more_env=[('GIT_PAGER', {[SQ ]})] ) ) (= scope= flags=0 words=[] bindings=[('msgnum', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub msgnum]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub msgnum]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir][LIT_CHARS /msgnum]]} "> 1), > ) ) ) (FunctionDef call_merge [] (List (= scope= flags=0 words=[] bindings=[('cmt', {[DQ [ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir][LIT_CHARS /cmt.][VarSub 1]]})]]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub cmt]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir][LIT_CHARS /current]]} "> 1), > ) (= scope= flags=0 words=[] bindings=[('hd', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[LIT_CHARS HEAD]})]})]) (= scope= flags=0 words=[] bindings=[('cmt_name', {[ComSub (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS symbolic-ref]} {[LIT_CHARS HEAD]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS HEAD]}) )]})]) (= scope= flags=0 words=[] bindings=[('msgnum', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub state_dir][LIT_CHARS /msgnum]]})]})]) (Com {[LIT_CHARS eval]} {[LIT_CHARS GITHEAD_] [VarSub cmt] [LIT_DBRACKET_LIKE "="] [SQ ]} ) (Com {[LIT_CHARS eval]} {[LIT_CHARS GITHEAD_] [VarSub hd] [LIT_DBRACKET_LIKE "="] [SQ ]} ) (= scope= flags=1 words=[{[LIT_CHARS GITHEAD_] [VarSub cmt]}, {[LIT_CHARS GITHEAD_] [VarSub hd]}] bindings=[]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub GIT_QUIET]]} ) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('GIT_MERGE_VERBOSITY', {[LIT_CHARS 1]})]) (= scope= flags=1 words=[{[LIT_CHARS GIT_MERGE_VERBOSITY]}] bindings=[]) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub strategy]]} ) (= scope= flags=0 words=[] bindings=[('strategy', {[LIT_CHARS recursive]})]) ) (Com {[LIT_CHARS eval]} {[SQ ]} {[VarSub strategy_opts]} {[SQ ]} ) (= scope= flags=0 words=[] bindings=[('rv', {[VarSub ?]})]) (Case to_match={[DQ [VarSub rv]]}, pat_word_list=[[{[LIT_CHARS 0]}], [{[LIT_CHARS 1]}], [{[LIT_CHARS 2]}], [{[LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS unset]} {[LIT_CHARS GITHEAD_] [VarSub cmt]} {[LIT_CHARS GITHEAD_] [VarSub hd]} ) (Com {[LIT_CHARS return]} ) ) (List (Com {[LIT_CHARS git]} {[LIT_CHARS rerere]} {[VarSub allow_rerere_autoupdate]} ) (Com {[LIT_CHARS die]} {[DQ [VarSub resolvemsg]]} ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Strategy: "][VarSub strategy][LIT_CHARS " failed, try another"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS die]} {[DQ [VarSub resolvemsg]]} ) ) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Unknown exit code ("][VarSub rv][LIT_CHARS ") from command:"]]} {[DQ [LIT_CHARS git-merge-][VarSub strategy][LIT_CHARS " "][VarSub cmt][LIT_CHARS "^ -- HEAD "][VarSub cmt]]} ) ) ) ) (FunctionDef finish_rb_merge [] (List (Com {[LIT_CHARS move_to_original_branch]} ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -s]} {[DQ [VarSub state_dir]] [LIT_CHARS /rewritten]} ) (List (Com {[LIT_CHARS git]} {[LIT_CHARS notes]} {[LIT_CHARS copy]} {[LIT_CHARS --for-rewrite] [LIT_DBRACKET_LIKE "="] [LIT_CHARS rebase]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir]] [LIT_CHARS /rewritten]} 0), > ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -x]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/post-rewrite]} ) (Com {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/post-rewrite]} {[LIT_CHARS rebase]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir]] [LIT_CHARS /rewritten]} 0), > ) ) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -r]} {[DQ [VarSub state_dir]]} ) (Com {[LIT_CHARS say]} {[LIT_CHARS All]} {[LIT_CHARS done.]} ) ) ) (Case to_match={[DQ [VarSub action]]}, pat_word_list=[[{[LIT_CHARS continue]}], [{[LIT_CHARS skip]}]] (List (Com {[LIT_CHARS read_state]} ) (Com {[LIT_CHARS continue_merge]} ) (While (Com {[LIT_CHARS test]} {[DQ [VarSub msgnum]]} {[LIT_CHARS -le]} {[DQ [VarSub end]]} ) (List (Com {[LIT_CHARS call_merge]} {[DQ [VarSub msgnum]]} ) (Com {[LIT_CHARS continue_merge]} ) ) ) (Com {[LIT_CHARS finish_rb_merge]} ) (Com {[LIT_CHARS exit]} ) ) (List (Com {[LIT_CHARS read_state]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS rerere]} {[LIT_CHARS clear]} ) (= scope= flags=0 words=[] bindings=[('msgnum', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub msgnum]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (While (Com {[LIT_CHARS test]} {[DQ [VarSub msgnum]]} {[LIT_CHARS -le]} {[DQ [VarSub end]]} ) (List (Com {[LIT_CHARS call_merge]} {[DQ [VarSub msgnum]]} ) (Com {[LIT_CHARS continue_merge]} ) ) ) (Com {[LIT_CHARS finish_rb_merge]} ) (Com {[LIT_CHARS exit]} ) ) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub state_dir]]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub onto_name]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir][LIT_CHARS /onto_name]]} "> 1), > ) (Com {[LIT_CHARS write_basic_state]} ) (= scope= flags=0 words=[] bindings=[('msgnum', {[LIT_CHARS 0]})]) (For cmt [{[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-list]} {[LIT_CHARS --reverse]} {[LIT_CHARS --no-merges]} {[DQ [VarSub revisions]]})]}]) (List (= scope= flags=0 words=[] bindings=[('msgnum', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub msgnum]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub cmt]]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir][LIT_CHARS /cmt.][VarSub msgnum]]} "> 1), > ) ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS 1]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir][LIT_CHARS /msgnum]]} "> 1), > ) (Com {[LIT_CHARS echo]} {[VarSub msgnum]} < (FilenameRedirectNode filename={[DQ [VarSub state_dir][LIT_CHARS /end]]} "> 1), > ) (= scope= flags=0 words=[] bindings=[('end', {[VarSub msgnum]})]) (= scope= flags=0 words=[] bindings=[('msgnum', {[LIT_CHARS 1]})]) (While (Com {[LIT_CHARS test]} {[DQ [VarSub msgnum]]} {[LIT_CHARS -le]} {[DQ [VarSub end]]} ) (List (Com {[LIT_CHARS call_merge]} {[DQ [VarSub msgnum]]} ) (Com {[LIT_CHARS continue_merge]} ) ) ) (Com {[LIT_CHARS finish_rb_merge]} ) )