(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTIONS_KEEPDASHDASH) op:Equal rhs:{(SQ )} spids:[13])] spids: [13] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTIONS_SPEC) op: Equal rhs: { (DQ ("git merge [options] <remote>...\n") ("git merge [options] <msg> HEAD <remote>\n") ("--\n") ("stat show a diffstat at the end of the merge\n") ("n don't show a diffstat at the end of the merge\n") ("summary (synonym to --stat)\n") ("log add list of one-line log to merge commit message\n") ("squash create a single commit instead of doing a merge\n") ("commit perform a commit if the merge succeeds (default)\n") ("ff allow fast-forward (default)\n") ("ff-only abort if fast-forward is not possible\n") ("rerere-autoupdate update index with any reused conflict resolution\n") ("s,strategy= merge strategy to use\n") ("X= option for selected merge strategy\n") ("m,message= message to be used for the merge commit (if any)\n") ) } spids: [15] ) ] spids: [15] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SUBDIRECTORY_OK) op:Equal rhs:{(Yes)} spids:[36])] spids: [36] ) (C {(.)} {(git-sh-setup)}) (C {(require_work_tree)}) (C {(cd_to_toplevel)}) (AndOr children: [ (C {(test)} {(-z)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(git)} {(ls-files)} {(-u)})]) left_token: <Left_CommandSub "$("> spids: [53 59] ) ) } ) (C {(die)} {(DQ ("Merge is not possible because you have unmerged files."))}) ] op_id: Op_DPipe ) (AndOr children: [ (Pipeline children: [(C {(test)} {(-e)} {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_HEAD))})] negated: True ) (C {(die)} {(SQ <"You have not concluded your merge (MERGE_HEAD exists).">)}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LF) op:Equal rhs:{(SQ <"\n">)} spids:[93])] spids: [93] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:all_strategies) op: Equal rhs: {(SQ <"recur recursive octopus resolve stupid ours subtree">)} spids: [99] ) ] spids: [99] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:all_strategies) op: Equal rhs: {(DQ ($ VSub_Name "$all_strategies") (" recursive-ours recursive-theirs"))} spids: [104] ) ] spids: [104] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:not_strategies) op: Equal rhs: {(SQ <"base file index tree">)} spids: [110] ) ] spids: [110] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:default_twohead_strategies) op: Equal rhs: {(SQ <recursive>)} spids: [115] ) ] spids: [115] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:default_octopus_strategies) op: Equal rhs: {(SQ <octopus>)} spids: [120] ) ] spids: [120] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:no_fast_forward_strategies) op: Equal rhs: {(SQ <"subtree ours">)} spids: [125] ) ] spids: [125] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:no_trivial_strategies) op: Equal rhs: {(SQ <"recursive recur subtree ours recursive-ours recursive-theirs">)} spids: [130] ) ] spids: [130] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:use_strategies) op:Equal rhs:{(SQ )} spids:[135])] spids: [135] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:xopt) op:Equal rhs:{(SQ )} spids:[137])] spids: [137] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:allow_fast_forward) op:Equal rhs:{(t)} spids:[140])] spids: [140] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fast_forward_only) op:Equal rhs:{(SQ )} spids:[143])] spids: [143] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:allow_trivial_merge) op:Equal rhs:{(t)} spids:[145])] spids: [145] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs:(LhsName name:squash) op:Equal rhs:{(SQ )} spids:[148]) (assign_pair lhs:(LhsName name:no_commit) op:Equal rhs:{(SQ )} spids:[150]) (assign_pair lhs:(LhsName name:log_arg) op:Equal rhs:{(SQ )} spids:[152]) (assign_pair lhs:(LhsName name:rr_arg) op:Equal rhs:{(SQ )} spids:[154]) ] spids: [148] ) (FuncDef name: dropsave body: (BraceGroup children: [ (AndOr children: [ (C {(rm)} {(-f)} {(--)} {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_HEAD))} {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_MSG))} {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_STASH))} {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_MODE))} ) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) ] spids: [161] ) spids: [157 160] ) (FuncDef name: savestate body: (BraceGroup children: [ (SimpleCommand words: [{(git)} {(stash)} {(create)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_STASH))} spids: [218] ) ] ) ] spids: [205] ) spids: [201 204] ) (FuncDef name: restorestate body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(test)} {(-f)} {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_STASH))})] action: [ (SimpleCommand words: [{(git)} {(reset)} {(--hard)} {($ VSub_Name "$head")}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[257])] ) (C {(git)} {(stash)} {(apply)} { (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_STASH))})] ) left_token: <Left_CommandSub "$("> spids: [267 274] ) } ) (SimpleCommand words: [{(git)} {(update-index)} {(--refresh)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[283])] ) ] spids: [-1 246] ) ] spids: [-1 287] ) ] spids: [231] ) spids: [227 230] ) (FuncDef name: finish_up_to_date body: (BraceGroup children: [ (Case to_match: {(DQ ($ VSub_Name "$squash"))} arms: [ (case_arm pat_list: [{(t)}] action: [(C {(echo)} {(DQ ($ VSub_Number "$1") (" (nothing to squash)"))})] spids: [309 310 320 -1] ) (case_arm pat_list: [{(SQ )}] action: [(C {(echo)} {(DQ ($ VSub_Number "$1"))})] spids: [-1 325 334 -1] ) ] spids: [300 306 337] ) (C {(dropsave)}) ] spids: [297] ) spids: [292 296] ) (FuncDef name: squash_message body: (BraceGroup children: [ (C {(echo)} {(Squashed)} {(commit)} {(of)} {(the)} {(following) (Lit_Other ":")}) (C {(echo)}) (C {(git)} {(log)} {(--no-merges)} {(--pretty) (Lit_Other "=") (medium)} {(Lit_Other "^") (DQ ($ VSub_Name "$head"))} {($ VSub_Name "$remoteheads")} ) ] spids: [350] ) spids: [345 349] ) (FuncDef name: finish body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(test)} {(SQ )} {(Lit_Other "=")} {(DQ ($ VSub_Number "$2"))})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rlogm) op: Equal rhs: {(DQ ($ VSub_Name "$GIT_REFLOG_ACTION"))} spids: [415] ) ] spids: [415] ) ] spids: [-1 412] ) ] else_action: [ (C {(echo)} {(DQ ($ VSub_Number "$2"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rlogm) op: Equal rhs: {(DQ ($ VSub_Name "$GIT_REFLOG_ACTION") (": ") ($ VSub_Number "$2"))} spids: [431] ) ] spids: [431] ) ] spids: [421 439] ) (Case to_match: {(DQ ($ VSub_Name "$squash"))} arms: [ (case_arm pat_list: [{(t)}] action: [ (C {(echo)} {(DQ ("Squash commit -- not updating HEAD"))}) (SimpleCommand words: [{(squash_message)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$GIT_DIR") (/SQUASH_MSG))} spids: [464] ) ] ) ] spids: [451 452 471 -1] ) (case_arm pat_list: [{(SQ )}] action: [ (Case to_match: {(DQ ($ VSub_Name "$merge_msg"))} arms: [ (case_arm pat_list: [{(SQ )}] action: [(C {(echo)} {(DQ ("No merge message -- not updating HEAD"))})] spids: [-1 490 500 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (AndOr children: [ (C {(git)} {(update-ref)} {(-m)} {(DQ ($ VSub_Name "$rlogm"))} {(HEAD)} {(DQ ($ VSub_Number "$1"))} {(DQ ($ VSub_Name "$head"))} ) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) (C {(git)} {(gc)} {(--auto)}) ] spids: [503 504 541 -1] ) ] spids: [479 485 544] ) ] spids: [-1 476 547 -1] ) ] spids: [442 448 550] ) (Case to_match: {(DQ ($ VSub_Number "$1"))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[-1564567-1]) (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name "$show_diffstat"))} {(Lit_Other "=")} {(t)}) ] action: [ (SimpleCommand words: [ {(git)} {(diff)} {(--stat)} {(--summary)} {(-M)} {(DQ ($ VSub_Name "$head"))} {(DQ ($ VSub_Number "$1"))} ] more_env: [(env_pair name:GIT_PAGER val:{(SQ )} spids:[595])] ) ] spids: [-1 588] ) ] spids: [-1 618] ) ] spids: [570 572 621 -1] ) ] spids: [553 559 624] ) (If arms: [ (if_arm cond: [(C {(test)} {(-x)} {(DQ ($ VSub_Name "$GIT_DIR")) (/hooks/post-merge)})] action: [ (Case to_match: {(DQ ($ VSub_Name "$squash"))} arms: [ (case_arm pat_list: [{(t)}] action: [(C {(DQ ($ VSub_Name "$GIT_DIR")) (/hooks/post-merge)} {(1)})] spids: [656 657 668 -1] ) (case_arm pat_list: [{(SQ )}] action: [(C {(DQ ($ VSub_Name "$GIT_DIR")) (/hooks/post-merge)} {(0)})] spids: [-1 673 684 -1] ) ] spids: [647 653 687] ) ] spids: [-1 644] ) ] spids: [-1 690] ) ] spids: [395] ) spids: [390 394] ) (FuncDef name: merge_name body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:remote) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [703] ) ] spids: [703] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rh) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(git)} {(rev-parse)} {(--verify)} {(DQ ($ VSub_Name "$remote") ("^0"))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [722] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [710 724] ) } spids: [709] ) ] spids: [709] ) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:truname) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(DQ ($ VSub_Name "$remote"))} {(Lit_Other ":")} {(SQ <"\\(.*\\)~[0-9]*$">)} ) ] ) left_token: <Left_CommandSub "$("> spids: [734 746] ) } spids: [733] ) ] spids: [733] ) (SimpleCommand words: [ {(git)} {(show-ref)} {(-q)} {(--verify)} {(DQ (refs/heads/) ($ VSub_Name "$truname"))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [764] ) ] ) ] op_id: Op_DAmp ) ] action: [ (C {(echo)} { (DQ ($ VSub_Name "$rh") ("\t\tbranch '") ($ VSub_Name "$truname") ("' (early part) of .") ) } ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [-1 768] ) ] spids: [-1 784] ) (If arms: [ (if_arm cond: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:found_ref) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(git)} {(rev-parse)} {(--symbolic-full-name)} {(--verify)} {(DQ ($ VSub_Name "$remote"))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [805] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [790 807] ) } spids: [789] ) ] spids: [789] ) ] action: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expanded) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(check-ref-format)} {(--branch)} {(DQ ($ VSub_Name "$remote"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [814 824] ) } spids: [813] ) ] spids: [813] ) (C {(exit)}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (C {(test)} { (DQ (BracedVarSub token: <VSub_Name found_ref> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(refs) (Lit_Slash /) (heads) (Lit_Slash /)} ) spids: [837 844] ) ) } {(KW_Bang "!") (Lit_Other "=")} {(DQ ($ VSub_Name "$found_ref"))} ) ] action: [ (C {(echo)} { (DQ ($ VSub_Name "$rh") ("\t\tbranch '") ($ VSub_Name "$expanded") ("' of .") ) } ) (ControlFlow token: <ControlFlow_Return return> ) ] spids: [-1 855] ) (if_arm cond: [ (C {(test)} { (DQ (BracedVarSub token: <VSub_Name found_ref> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(refs) (Lit_Slash /) (remotes) (Lit_Slash /)} ) spids: [876 883] ) ) } {(KW_Bang "!") (Lit_Other "=")} {(DQ ($ VSub_Name "$found_ref"))} ) ] action: [ (C {(echo)} { (DQ ($ VSub_Name "$rh") ("\t\tremote branch '") ($ VSub_Name "$expanded") ("' of .") ) } ) (ControlFlow token: <ControlFlow_Return return> ) ] spids: [871 894] ) ] spids: [-1 910] ) ] spids: [-1 810] ) ] spids: [-1 913] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$remote"))} {(Lit_Other "=")} {(DQ (FETCH_HEAD))}) (C {(test)} {(-r)} {(DQ ($ VSub_Name "$GIT_DIR") (/FETCH_HEAD))}) ] op_id: Op_DAmp ) ] action: [ (C {(sed)} {(-e)} {(SQ <"s/\tnot-for-merge\t/\t\t/">)} {(-e)} {(1q)} {(DQ ($ VSub_Name "$GIT_DIR") (/FETCH_HEAD))} ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [-1 942] ) ] spids: [-1 968] ) (C {(echo)} {(DQ ($ VSub_Name "$rh") ("\t\tcommit '") ($ VSub_Name "$remote") ("'"))}) ] spids: [700] ) spids: [695 699] ) (FuncDef name: parse_config body: (BraceGroup children: [ (While cond: [ (Sentence child: (C {(test)} {($ VSub_Pound "$#")} {(KW_Bang "!") (Lit_Other "=")} {(0)}) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Number "$1"))} arms: [ (case_arm pat_list: [{(-n)} {(--no-stat)} {(--no-summary)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:show_diffstat) op: Equal rhs: {(false)} spids: [1023] ) ] spids: [1023] ) ] spids: [1015 1020 1026 -1] ) (case_arm pat_list: [{(--stat)} {(--summary)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:show_diffstat) op: Equal rhs: {(t)} spids: [1035] ) ] spids: [1035] ) ] spids: [1029 1032 1038 -1] ) (case_arm pat_list: [{(--log)} {(--no-log)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:log_arg) op: Equal rhs: {($ VSub_Number "$1")} spids: [1047] ) ] spids: [1047] ) ] spids: [1041 1044 1050 -1] ) (case_arm pat_list: [{(--squash)}] action: [ (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$allow_fast_forward"))} {(Lit_Other "=")} {(t)} ) (C {(die)} {(DQ ("You cannot combine --squash with --no-ff."))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:squash) op: Equal rhs: {(t)} spids: [1077] ) (assign_pair lhs: (LhsName name:no_commit) op: Equal rhs: {(t)} spids: [1080] ) ] spids: [1077] ) ] spids: [1053 1054 1083 -1] ) (case_arm pat_list: [{(--no-squash)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:squash) op: Equal rhs: {(SQ )} spids: [1090] ) (assign_pair lhs: (LhsName name:no_commit) op: Equal rhs: {(SQ )} spids: [1092] ) ] spids: [1090] ) ] spids: [1086 1087 1094 -1] ) (case_arm pat_list: [{(--commit)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:no_commit) op: Equal rhs: {(SQ )} spids: [1101] ) ] spids: [1101] ) ] spids: [1097 1098 1103 -1] ) (case_arm pat_list: [{(--no-commit)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:no_commit) op: Equal rhs: {(t)} spids: [1110] ) ] spids: [1110] ) ] spids: [1106 1107 1113 -1] ) (case_arm pat_list: [{(--ff)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:allow_fast_forward) op: Equal rhs: {(t)} spids: [1120] ) ] spids: [1120] ) ] spids: [1116 1117 1123 -1] ) (case_arm pat_list: [{(--no-ff)}] action: [ (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$squash"))} {(KW_Bang "!") (Lit_Other "=")} {(t)} ) (C {(die)} {(DQ ("You cannot combine --squash with --no-ff."))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$fast_forward_only"))} {(KW_Bang "!") (Lit_Other "=")} {(t)} ) (C {(die)} {(DQ ("You cannot combine --ff-only with --no-ff."))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:allow_fast_forward) op: Equal rhs: {(f)} spids: [1172] ) ] spids: [1172] ) ] spids: [1126 1127 1175 -1] ) (case_arm pat_list: [{(--ff-only)}] action: [ (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$allow_fast_forward"))} {(KW_Bang "!") (Lit_Other "=")} {(f)} ) (C {(die)} {(DQ ("You cannot combine --ff-only with --no-ff."))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fast_forward_only) op: Equal rhs: {(t)} spids: [1203] ) ] spids: [1203] ) ] spids: [1178 1179 1206 -1] ) (case_arm pat_list: [{(--rerere-autoupdate)} {(--no-rerere-autoupdate)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rr_arg) op: Equal rhs: {($ VSub_Number "$1")} spids: [1215] ) ] spids: [1215] ) ] spids: [1209 1212 1218 -1] ) (case_arm pat_list: [{(-s)} {(--strategy)}] action: [ (C {(shift)}) (Case to_match: {(DQ (" ") ($ VSub_Name "$all_strategies") (" "))} arms: [ (case_arm pat_list: [ {(Lit_Other "*") (DQ (" ") ($ VSub_Number "$1") (" ")) (Lit_Other "*") } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:use_strategies) op: Equal rhs: { (DQ ($ VSub_Name "$use_strategies") ($ VSub_Number "$1") (" ") ) } spids: [1251] ) ] spids: [1251] ) ] spids: [1241 1248 1259 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (AndOr children: [ (Case to_match: {(DQ (" ") ($ VSub_Name "$not_strategies") (" "))} arms: [ (case_arm pat_list: [ {(Lit_Other "*") (DQ (" ") ($ VSub_Number "$1") (" ")) (Lit_Other "*") } ] action: [(C {(false)})] spids: [1277 1284 -1 1290] ) ] spids: [1266 1274 1290] ) (AndOr children: [ (SimpleCommand words: [{(type)} {(DQ (git-merge-) ($ VSub_Number "$1"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [1302] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1305] ) ] ) (C {(die)} { (DQ ("available strategies are: ") ($ VSub_Name "$all_strategies") ) } ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:use_strategies) op: Equal rhs: { (DQ ($ VSub_Name "$use_strategies") ($ VSub_Number "$1") (" ") ) } spids: [1319] ) ] spids: [1319] ) ] spids: [1262 1263 1327 -1] ) ] spids: [1230 1238 1330] ) ] spids: [1221 1224 1333 -1] ) (case_arm pat_list: [{(-X)}] action: [ (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:xopt) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name xopt> suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: {($ VSub_Name "$xopt") (" ")} ) spids: [1345 1350] ) (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(rev-parse)} {(--sq-quote)} {(DQ (--) ($ VSub_Number "$1"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [1351 1362] ) ) } spids: [1343] ) ] spids: [1343] ) ] spids: [1336 1337 1366 -1] ) (case_arm pat_list: [{(-m)} {(--message)}] action: [ (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_msg) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [1378] ) ] spids: [1378] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:have_message) op: Equal rhs: {(t)} spids: [1384] ) ] spids: [1384] ) ] spids: [1369 1372 1388 -1] ) (case_arm pat_list: [{(--)}] action: [(C {(shift)}) (ControlFlow token:<ControlFlow_Break break>)] spids: [1391 1392 1400 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [(C {(usage)})] spids: [1403 1404 1408 -1] ) ] spids: [1006 1012 1411] ) (C {(shift)}) ] spids: [1003 1417] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:args_left) op: Equal rhs: {($ VSub_Pound "$#")} spids: [1420] ) ] spids: [1420] ) ] spids: [988] ) spids: [983 987] ) (AndOr children: [(C {(test)} {($ VSub_Pound "$#")} {(KW_Bang "!") (Lit_Other "=")} {(0)}) (C {(usage)})] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:have_message) op:Equal rhs:{(SQ )} spids:[1440])] spids: [1440] ) (If arms: [ (if_arm cond: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:branch) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(git-symbolic-ref)} {(-q)} {(HEAD)})] ) left_token: <Left_CommandSub "$("> spids: [1446 1452] ) } spids: [1445] ) ] spids: [1445] ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mergeopts) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(config)} { (DQ (branch.) (BracedVarSub token: <VSub_Name branch> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(refs) (Lit_Slash /) (heads) (Lit_Slash /)} ) spids: [1465 1472] ) (.mergeoptions) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [1458 1475] ) } spids: [1457] ) ] spids: [1457] ) (If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$mergeopts"))})] action: [(C {(parse_config)} {($ VSub_Name "$mergeopts")} {(--)})] spids: [-1 1489] ) ] spids: [-1 1499] ) ] spids: [-1 1454] ) ] spids: [-1 1501] ) (C {(parse_config)} {(DQ ($ VSub_At "$@"))}) (While cond: [ (Sentence child: (C {(test)} {($ VSub_Name "$args_left")} {(-lt)} {($ VSub_Pound "$#")}) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [(Sentence child:(C {(shift)}) terminator:<Op_Semi ";">)] spids: [1521 1526] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name "$show_diffstat"))}) terminator: <Op_Semi ";"> ) ] action: [ (AndOr children: [ (C {(test)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--bool)} {(merge.diffstat)})] ) left_token: <Left_CommandSub "$("> spids: [1546 1554] ) ) } {(Lit_Other "=")} {(false)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:show_diffstat) op: Equal rhs: {(false)} spids: [1563] ) ] spids: [1563] ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(test)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--bool)} {(merge.stat)})] ) left_token: <Left_CommandSub "$("> spids: [1570 1578] ) ) } {(Lit_Other "=")} {(false)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:show_diffstat) op: Equal rhs: {(false)} spids: [1587] ) ] spids: [1587] ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name "$show_diffstat"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:show_diffstat) op: Equal rhs: {(t)} spids: [1601] ) ] spids: [1601] ) ] op_id: Op_DAmp ) ] spids: [-1 1540] ) ] spids: [-1 1604] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name "$have_message"))}) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:second_token) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(git)} {(rev-parse)} {(--verify)} {(DQ ($ VSub_Number "$2") ("^0"))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1649] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [1637 1651] ) } spids: [1636] ) ] spids: [1636] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:head_commit) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(git)} {(rev-parse)} {(--verify)} {(DQ (HEAD))}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1668] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [1657 1670] ) } spids: [1656] ) ] spids: [1656] ) (C {(test)} {(DQ ($ VSub_Name "$second_token"))} {(Lit_Other "=")} {(DQ ($ VSub_Name "$head_commit"))} ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_msg) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [1690] ) ] spids: [1690] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:head_arg) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [1699] ) ] spids: [1699] ) (C {(shift)}) ] spids: [-1 1687] ) (if_arm cond: [ (Pipeline children: [ (SimpleCommand words: [{(git)} {(rev-parse)} {(--verify)} {(HEAD)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [1719] ) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1722]) ] ) ] negated: True ) ] action: [ (If arms: [ (if_arm cond: [(C {(test)} {(1)} {(-ne)} {($ VSub_Pound "$#")})] action: [ (SimpleCommand words: [{(echo)} {(DQ ("Can merge only exactly one commit into empty head"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1756])] ) (C {(exit)} {(1)}) ] spids: [-1 1751] ) ] spids: [-1 1769] ) (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$squash"))} {(KW_Bang "!") (Lit_Other "=")} {(t)}) (C {(die)} {(DQ ("Squash commit into empty head not supported yet"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$allow_fast_forward"))} {(Lit_Other "=")} {(t)}) (C {(die)} {(DQ ("Non-fast-forward into an empty head does not make sense"))}) ] op_id: Op_DPipe ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rh) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(DQ ($ VSub_Number "$1") ("^0"))}) ] ) left_token: <Left_CommandSub "$("> spids: [1815 1826] ) } spids: [1814] ) ] spids: [1814] ) (C {(die)} {(DQ ($ VSub_Number "$1") (" - not something we can merge"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(git)} {(update-ref)} {(-m)} {(DQ ("initial pull"))} {(HEAD)} {(DQ ($ VSub_Name "$rh"))} {(DQ )}) (C {(git)} {(read-tree)} {(--reset)} {(-u)} {(HEAD)}) ] op_id: Op_DAmp ) (C {(exit)}) ] spids: [1707 1725] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:head_arg) op:Equal rhs:{(HEAD)} spids:[1883])] spids: [1883] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_msg) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (ForEach iter_name: remote do_arg_iter: True body: (DoGroup children: [(C {(merge_name)} {(DQ ($ VSub_Name "$remote"))})] spids: [1918 1928] ) spids: [-1 -1] ) (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name "$have_message"))} {(Lit_Other "=")} {(t)} ) ] action: [ (C {(git)} {(fmt-merge-msg)} {(-m)} {(DQ ($ VSub_Name "$merge_msg"))} {($ VSub_Name "$log_arg")} ) ] spids: [-1 1946] ) ] else_action: [ (C {(git)} {(fmt-merge-msg)} {($ VSub_Name "$log_arg")}) ] spids: [1962 1972] ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1910 1975] ) ) } spids: [1908] ) ] spids: [1908] ) ] spids: [1876 1978] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:head) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(DQ ($ VSub_Name "$head_arg")) (Lit_Other "^") (0)} ) ] ) left_token: <Left_CommandSub "$("> spids: [1981 1993] ) } spids: [1980] ) ] spids: [1980] ) (C {(usage)}) ] op_id: Op_DPipe ) (Sentence child: (AndOr children: [(C {(test)} {(DQ ($ VSub_Pound "$#"))} {(Lit_Other "=")} {(0)}) (C {(usage)})] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) (C {(set_reflog_action)} {(DQ ("merge ") ($ VSub_Star "$*"))}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:remoteheads) op:Equal rhs:{(SQ )} spids:[2029])] spids: [2029] ) (ForEach iter_name: remote do_arg_iter: True body: (DoGroup children: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:remotehead) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(git)} {(rev-parse)} {(--verify)} {(DQ ($ VSub_Name "$remote")) (Lit_Other "^") (0)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [2052] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [2039 2054] ) } spids: [2038] ) ] spids: [2038] ) (C {(die)} {(DQ ($ VSub_Name "$remote") (" - not something we can merge"))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:remoteheads) op: Equal rhs: {(DQ (${ VSub_Name remoteheads) ($ VSub_Name "$remotehead") (" "))} spids: [2067] ) ] spids: [2067] ) (C {(eval)} {(GITHEAD_) ($ VSub_Name "$remotehead") (Lit_Other "=") (SQ <"\"$remote\"">)}) (C {(export)} {(GITHEAD_) ($ VSub_Name "$remotehead")}) ] spids: [2035 2092] ) spids: [-1 -1] ) (Sentence child:(C {(set)} {(x)} {($ VSub_Name "$remoteheads")}) terminator:<Op_Semi ";">) (C {(shift)}) (Case to_match: {(DQ ($ VSub_Name "$use_strategies"))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (Case to_match: {(DQ ($ VSub_Pound "$#"))} arms: [ (case_arm pat_list: [{(1)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:var) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--get)} {(pull.twohead)})] ) left_token: <Left_CommandSub "$("> spids: [2133 2141] ) ) } spids: [2131] ) ] spids: [2131] ) (If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$var"))})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:use_strategies) op: Equal rhs: {(DQ ($ VSub_Name "$var"))} spids: [2159] ) ] spids: [2159] ) ] spids: [-1 2156] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:use_strategies) op: Equal rhs: {(DQ ($ VSub_Name "$default_twohead_strategies"))} spids: [2168] ) ] spids: [2168] ) ] spids: [2165 2174] ) ] spids: [2127 2128 2176 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:var) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--get)} {(pull.octopus)})] ) left_token: <Left_CommandSub "$("> spids: [2185 2193] ) ) } spids: [2183] ) ] spids: [2183] ) (If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$var"))})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:use_strategies) op: Equal rhs: {(DQ ($ VSub_Name "$var"))} spids: [2211] ) ] spids: [2211] ) ] spids: [-1 2208] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:use_strategies) op: Equal rhs: {(DQ ($ VSub_Name "$default_octopus_strategies"))} spids: [2220] ) ] spids: [2220] ) ] spids: [2217 2226] ) ] spids: [2179 2180 2228 -1] ) ] spids: [2118 2124 2231] ) ] spids: [-1 2115 2234 -1] ) ] spids: [2105 2111 2236] ) (ForEach iter_name: s iter_words: [{($ VSub_Name "$use_strategies")}] do_arg_iter: False body: (DoGroup children: [ (ForEach iter_name: ss iter_words: [{($ VSub_Name "$no_fast_forward_strategies")}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {(DQ (" ") ($ VSub_Name "$s") (" "))} arms: [ (case_arm pat_list: [ {(Lit_Other "*") (DQ (" ") ($ VSub_Name "$ss") (" ")) (Lit_Other "*")} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:allow_fast_forward) op: Equal rhs: {(f)} spids: [2283] ) ] spids: [2283] ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [2273 2280 2290 -1] ) ] spids: [2262 2270 2293] ) ] spids: [2259 2296] ) spids: [2255 -1] ) (ForEach iter_name: ss iter_words: [{($ VSub_Name "$no_trivial_strategies")}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {(DQ (" ") ($ VSub_Name "$s") (" "))} arms: [ (case_arm pat_list: [ {(Lit_Other "*") (DQ (" ") ($ VSub_Name "$ss") (" ")) (Lit_Other "*")} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:allow_trivial_merge) op: Equal rhs: {(f)} spids: [2332] ) ] spids: [2332] ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [2322 2329 2339 -1] ) ] spids: [2311 2319 2342] ) ] spids: [2308 2345] ) spids: [2304 -1] ) ] spids: [2247 2347] ) spids: [2244 -1] ) (Case to_match: {(DQ ($ VSub_Pound "$#"))} arms: [ (case_arm pat_list: [{(1)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:common) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(merge-base)} {(--all)} {($ VSub_Name "$head")} {(DQ ($ VSub_At "$@"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [2363 2375] ) } spids: [2362] ) ] spids: [2362] ) ] spids: [2358 2359 2378 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:common) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(merge-base)} {(--all)} {(--octopus)} {($ VSub_Name "$head")} {(DQ ($ VSub_At "$@"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [2385 2399] ) } spids: [2384] ) ] spids: [2384] ) ] spids: [2380 2381 2402 -1] ) ] spids: [2350 2356 2404] ) (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Name "$head"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$GIT_DIR") (/ORIG_HEAD))} spids: [2412] ) ] ) (Case to_match: { (DQ ($ VSub_Name "$allow_fast_forward") (",") ($ VSub_Pound "$#") (",") ($ VSub_Name "$common") (",") ($ VSub_Name "$no_commit") ) } arms: [ (case_arm pat_list: [ {(Lit_Other "?") (Lit_Comma ",") (Lit_Other "*") (Lit_Comma ",") (SQ ) (Lit_Comma ",") (Lit_Other "*") } ] spids: [2433 2441 2448 -1] ) (case_arm pat_list: [ {(Lit_Other "?") (Lit_Comma ",") (1) (Lit_Comma ",") (DQ ($ VSub_Number "$1")) (Lit_Comma ",") (Lit_Other "*") } ] action: [(C {(finish_up_to_date)} {(DQ ("Already up-to-date."))}) (C {(exit)} {(0)})] spids: [2450 2459 2482 -1] ) (case_arm pat_list: [ {(t) (Lit_Comma ",") (1) (Lit_Comma ",") (DQ ($ VSub_Name "$head")) (Lit_Comma ",") (Lit_Other "*") } ] action: [ (C {(echo)} { (DQ ("Updating ") (CommandSubPart command_list: (CommandList children: [(C {(git)} {(rev-parse)} {(--short)} {($ VSub_Name "$head")})] ) left_token: <Left_CommandSub "$("> spids: [2504 2512] ) (..) (CommandSubPart command_list: (CommandList children: [(C {(git)} {(rev-parse)} {(--short)} {($ VSub_Number "$1")})] ) left_token: <Left_CommandSub "$("> spids: [2514 2522] ) ) } ) (SimpleCommand words: [{(git)} {(update-index)} {(--refresh)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[2532])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:msg) op: Equal rhs: {(DQ (Fast-forward))} spids: [2536] ) ] spids: [2536] ) (If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$have_message"))})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:msg) op: Equal rhs: {(DQ ($ VSub_Name "$msg") (" (no commit created; -m option ignored)"))} spids: [2556] ) ] spids: [2556] ) ] spids: [-1 2553] ) ] spids: [-1 2563] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:new_head) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(DQ ($ VSub_Number "$1") ("^0"))}) ] ) left_token: <Left_CommandSub "$("> spids: [2567 2578] ) } spids: [2566] ) ] spids: [2566] ) (AndOr children: [ (C {(git)} {(read-tree)} {(-v)} {(-m)} {(-u)} {(--exclude-per-directory) (Lit_Other "=") (.gitignore)} {($ VSub_Name "$head")} {(DQ ($ VSub_Name "$new_head"))} ) (AndOr children: [ (C {(finish)} {(DQ ($ VSub_Name "$new_head"))} {(DQ ($ VSub_Name "$msg"))}) (C {(exit)}) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (C {(dropsave)}) (C {(exit)} {(0)}) ] spids: [2484 2493 2629 -1] ) (case_arm pat_list: [ {(Lit_Other "?") (Lit_Comma ",") (1) (Lit_Comma ",") (Lit_Other "?") (Lit_Other "*") (DQ ($ VSub_Name "$LF")) (Lit_Other "?") (Lit_Other "*") (Lit_Comma ",") (Lit_Other "*") } ] spids: [2631 2644 2655 -1] ) (case_arm pat_list: [ {(Lit_Other "?") (Lit_Comma ",") (1) (Lit_Comma ",") (Lit_Other "*") (Lit_Comma ",")} ] action: [ (SimpleCommand words: [{(git)} {(update-index)} {(--refresh)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[2680])] ) (Case to_match: {(DQ ($ VSub_Name "$allow_trivial_merge") (",") ($ VSub_Name "$fast_forward_only"))} arms: [ (case_arm pat_list: [{(t) (Lit_Comma ",")}] action: [ (AndOr children: [ (SimpleCommand words: [{(git)} {(var)} {(GIT_COMMITTER_IDENT)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [2710] ) ] ) (C {(exit)}) ] op_id: Op_DPipe ) (C {(echo)} {(DQ ("Trying really trivial in-index merge..."))}) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(git)} {(read-tree)} {(--trivial)} {(-m)} {(-u)} {(-v)} {($ VSub_Name "$common")} {($ VSub_Name "$head")} {(DQ ($ VSub_Number "$1"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result_tree) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(write-tree)})] ) left_token: <Left_CommandSub "$("> spids: [2751 2755] ) } spids: [2750] ) ] spids: [2750] ) ] op_id: Op_DAmp ) ] action: [ (C {(echo)} {(DQ (Wonderful.))}) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result_commit) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(printf)} {(SQ <"%s\\n">)} {(DQ ($ VSub_Name "$merge_msg"))} ) (C {(git)} {(commit-tree)} {($ VSub_Name "$result_tree")} {(-p)} {(HEAD)} {(-p)} {(DQ ($ VSub_Number "$1"))} ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2769 2802] ) } spids: [2768] ) ] spids: [2768] ) (C {(exit)}) ] op_id: Op_DPipe ) (C {(finish)} {(DQ ($ VSub_Name "$result_commit"))} {(DQ ("In-index merge"))}) (C {(dropsave)}) (C {(exit)} {(0)}) ] spids: [-1 2758] ) ] spids: [-1 2828] ) (C {(echo)} {(DQ (Nope.))}) ] spids: [2695 2697 -1 2838] ) ] spids: [2684 2692 2838] ) ] spids: [2657 2663 2841 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:up_to_date) op:Equal rhs:{(t)} spids:[2851])] spids: [2851] ) (ForEach iter_name: remote do_arg_iter: True body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:common_one) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(merge-base)} {(--all)} {($ VSub_Name "$head")} {($ VSub_Name "$remote")} ) ] ) left_token: <Left_CommandSub "$("> spids: [2864 2874] ) } spids: [2863] ) ] spids: [2863] ) (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name "$common_one"))} {(KW_Bang "!") (Lit_Other "=")} {(DQ ($ VSub_Name "$remote"))} ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:up_to_date) op: Equal rhs: {(f)} spids: [2896] ) ] spids: [2896] ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [-1 2893] ) ] spids: [-1 2903] ) ] spids: [2860 2906] ) spids: [-1 -1] ) (If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_Name "$up_to_date"))} {(Lit_Other "=")} {(t)})] action: [ (C {(finish_up_to_date)} {(DQ ("Already up-to-date. Yeeah!"))}) (C {(exit)} {(0)}) ] spids: [-1 2922] ) ] spids: [-1 2937] ) ] spids: [2843 2844 2940 -1] ) ] spids: [2419 2431 2942] ) (If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_Name "$fast_forward_only"))} {(Lit_Other "=")} {(t)})] action: [(C {(die)} {(DQ ("Not possible to fast-forward, aborting."))})] spids: [-1 2957] ) ] spids: [-1 2966] ) (AndOr children: [ (SimpleCommand words: [{(git)} {(var)} {(GIT_COMMITTER_IDENT)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2978])] ) (C {(exit)}) ] op_id: Op_DPipe ) (Case to_match: {(DQ ($ VSub_Name "$use_strategies"))} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*") (SQ <" ">) (Lit_Other "?") (Lit_Other "*")}] action: [ (C {(savestate)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:single_strategy) op: Equal rhs: {(no)} spids: [3027] ) ] spids: [3027] ) ] spids: [3010 3017 3031 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_STASH))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:single_strategy) op: Equal rhs: {(yes)} spids: [3047] ) ] spids: [3047] ) ] spids: [3033 3034 3051 -1] ) ] spids: [3002 3008 3053] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs:(LhsName name:result_tree) op:Equal rhs:{(SQ )} spids:[3056]) (assign_pair lhs:(LhsName name:best_cnt) op:Equal rhs:{(-1)} spids:[3058]) (assign_pair lhs:(LhsName name:best_strategy) op:Equal rhs:{(SQ )} spids:[3061]) (assign_pair lhs:(LhsName name:wt_strategy) op:Equal rhs:{(SQ )} spids:[3063]) ] spids: [3056] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:merge_was_ok) op:Equal rhs:{(SQ )} spids:[3065])] spids: [3065] ) (ForEach iter_name: strategy iter_words: [{($ VSub_Name "$use_strategies")}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$wt_strategy"))} {(Lit_Other "=")} {(SQ )}) (BraceGroup children: [ (C {(echo)} {(DQ ("Rewinding the tree to pristine..."))}) (C {(restorestate)}) ] spids: [3091] ) ] op_id: Op_DPipe ) (Case to_match: {(DQ ($ VSub_Name "$single_strategy"))} arms: [ (case_arm pat_list: [{(no)}] action: [ (C {(echo)} {(DQ ("Trying merge strategy ") ($ VSub_Name "$strategy") (...))}) ] spids: [3116 3117 3129 -1] ) ] spids: [3107 3113 3132] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:wt_strategy) op: Equal rhs: {($ VSub_Name "$strategy")} spids: [3140] ) ] spids: [3140] ) (C {(eval)} {(SQ <"git-merge-$strategy ">) (DQ ($ VSub_Name "$xopt")) (SQ <" $common -- \"$head_arg\" \"$@\"">) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exit) op: Equal rhs: {($ VSub_QMark "$?")} spids: [3158] ) ] spids: [3158] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$no_commit"))} {(Lit_Other "=")} {(t)}) (C {(test)} {(DQ ($ VSub_Name "$exit"))} {(Lit_Other "=")} {(0)}) ] op_id: Op_DAmp ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_was_ok) op: Equal rhs: {(t)} spids: [3190] ) ] spids: [3190] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exit) op: Equal rhs: {(1)} spids: [3194] ) ] spids: [3194] ) terminator: <Op_Semi ";"> ) ] spids: [-1 3187] ) ] spids: [-1 3202] ) (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$exit"))} {(Lit_Other "=")} {(0)}) (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_Name "$exit"))} {(-eq)} {(1)})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cnt) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (BraceGroup children: [ (C {(git)} {(diff-files)} {(--name-only)}) (C {(git)} {(ls-files)} {(--unmerged)}) ] spids: [3249] ) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [3248 3273] ) } spids: [3247] ) ] spids: [3247] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(test)} {($ VSub_Name "$best_cnt")} {(-le)} {(0)}) (C {(test)} {($ VSub_Name "$cnt")} {(-le)} {($ VSub_Name "$best_cnt")} ) ] op_id: Op_DPipe ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:best_strategy) op: Equal rhs: {($ VSub_Name "$strategy")} spids: [3300] ) ] spids: [3300] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:best_cnt) op: Equal rhs: {($ VSub_Name "$cnt")} spids: [3304] ) ] spids: [3304] ) ] spids: [-1 3297] ) ] spids: [-1 3308] ) ] spids: [-1 3244] ) ] spids: [-1 3311] ) (ControlFlow token:<ControlFlow_Continue continue>) ] spids: [3218] ) ] op_id: Op_DPipe ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result_tree) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(git)} {(write-tree)})]) left_token: <Left_CommandSub "$("> spids: [3326 3330] ) } spids: [3325] ) ] spids: [3325] ) (ControlFlow token:<ControlFlow_Break break>) ] op_id: Op_DAmp ) ] spids: [3075 3336] ) spids: [3072 -1] ) (If arms: [ (if_arm cond: [ (C {(test)} {(SQ )} {(KW_Bang "!") (Lit_Other "=")} {(DQ ($ VSub_Name "$result_tree"))}) ] action: [ (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name "$allow_fast_forward"))} {(Lit_Other "=")} {(DQ (t))}) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:parents) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(merge-base)} {(--independent)} {(DQ ($ VSub_Name "$head"))} {(DQ ($ VSub_At "$@"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [3381 3395] ) } spids: [3380] ) ] spids: [3380] ) ] spids: [-1 3377] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:parents) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(rev-parse)} {(DQ ($ VSub_Name "$head"))} {(DQ ($ VSub_At "$@"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [3402 3414] ) } spids: [3401] ) ] spids: [3401] ) ] spids: [3398 3417] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:parents) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name "$parents"))}) (C {(sed)} {(-e)} {(SQ <"s/^/-p /">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [3421 3437] ) } spids: [3420] ) ] spids: [3420] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result_commit) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(printf)} {(SQ <"%s\\n">)} {(DQ ($ VSub_Name "$merge_msg"))}) (C {(git)} {(commit-tree)} {($ VSub_Name "$result_tree")} {($ VSub_Name "$parents")} ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [3441 3461] ) } spids: [3440] ) ] spids: [3440] ) (C {(exit)}) ] op_id: Op_DPipe ) (C {(finish)} {(DQ ($ VSub_Name "$result_commit"))} {(DQ ("Merge made by ") ($ VSub_Name "$wt_strategy") (.))} ) (C {(dropsave)}) (C {(exit)} {(0)}) ] spids: [-1 3359] ) ] spids: [-1 3488] ) (Case to_match: {(DQ ($ VSub_Name "$best_strategy"))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {(restorestate)}) (Case to_match: {(DQ ($ VSub_Name "$use_strategies"))} arms: [ (case_arm pat_list: [ {(Lit_Other "?") (Lit_Other "*") (SQ <" ">) (Lit_Other "?") (Lit_Other "*")} ] action: [ (SimpleCommand words: [{(echo)} {(DQ ("No merge strategy handled the merge."))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[3531])] ) ] spids: [3519 3526 3539 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (SimpleCommand words: [ {(echo)} {(DQ ("Merge with strategy ") ($ VSub_Name "$use_strategies") (" failed."))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[3548])] ) ] spids: [3542 3543 3558 -1] ) ] spids: [3510 3516 3561] ) (C {(exit)} {(2)}) ] spids: [-1 3504 3569 -1] ) (case_arm pat_list:[{(DQ ($ VSub_Name "$wt_strategy"))}] spids:[357235743581-1]) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (C {(echo)} {(DQ ("Rewinding the tree to pristine..."))}) (C {(restorestate)}) (C {(echo)} {(DQ ("Using the ") ($ VSub_Name "$best_strategy") (" to prepare resolving by hand."))} ) (C {(git-merge-) ($ VSub_Name "$best_strategy")} {($ VSub_Name "$common")} {(--)} {(DQ ($ VSub_Name "$head_arg"))} {(DQ ($ VSub_At "$@"))} ) ] spids: [3583 3584 3622 -1] ) ] spids: [3494 3500 3624] ) (If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_Name "$squash"))} {(Lit_Other "=")} {(t)})] action: [(C {(finish)})] spids: [-1 3639] ) ] else_action: [ (ForEach iter_name: remote do_arg_iter: True body: (DoGroup children:[(C {(echo)} {($ VSub_Name "$remote")})] spids:[36523660]) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_HEAD))} spids: [3662] ) ] spids: [-1 -1] ) (AndOr children: [ (SimpleCommand words: [{(printf)} {(SQ <"%s\\n">)} {(DQ ($ VSub_Name "$merge_msg"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_MSG))} spids: [3679] ) ] ) (C {(die)} {(DQ ("Could not write to ") ($ VSub_Name "$GIT_DIR") (/MERGE_MSG))}) ] op_id: Op_DPipe ) (AndOr children: [ (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name "$allow_fast_forward"))} {(KW_Bang "!") (Lit_Other "=")} {(t)} ) ] action: [(C {(printf)} {(DQ ("%s"))} {(no-ff)})] spids: [-1 3711] ) ] else_action: [(C {(Lit_Other ":")})] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_MODE))} spids: [3731] ) ] spids: [3723 3729] ) (C {(die)} {(DQ ("Could not write to ") ($ VSub_Name "$GIT_DIR") (/MERGE_MODE))}) ] op_id: Op_DPipe ) ] spids: [3644 3748] ) (If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_Name "$merge_was_ok"))} {(Lit_Other "=")} {(t)})] action: [ (SimpleCommand words: [ {(echo)} {(DQ ("Automatic merge went well; stopped before committing as requested"))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[3768])] ) (C {(exit)} {(0)}) ] spids: [-1 3763] ) ] else_action: [ (BraceGroup children: [ (C {(echo)} {(SQ <"\n"> <"Conflicts:\n">)}) (Pipeline children: [ (C {(git)} {(ls-files)} {(--unmerged)}) (C {(sed)} {(-e)} {(SQ <"s/^[^\t]*\t/\t/">)}) (C {(uniq)}) ] negated: False ) ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$GIT_DIR") (/MERGE_MSG))} spids: [3821] ) ] spids: [3785] ) (C {(git)} {(rerere)} {($ VSub_Name "$rr_arg")}) (C {(die)} {(DQ ("Automatic merge failed; fix conflicts and then commit the result."))}) ] spids: [3782 3841] ) ] )