(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:USAGE spids:[16]) op: Equal rhs: {(SQ <'<start> <url> [<end>]'>)} spids: [16] ) ] spids: [16] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LONG_USAGE spids:[21]) op: Equal rhs: { (SQ <'Summarizes the changes between two commits to the standard output,\n'> <'and includes the given URL in the generated summary.'> ) } spids: [21] ) ] spids: [21] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SUBDIRECTORY_OK spids:[27]) op: Equal rhs: {(SQ <Yes>)} spids: [27] ) ] spids: [27] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTIONS_KEEPDASHDASH spids:[32]) op: Equal rhs: (EmptyWord) spids: [32] ) ] spids: [32] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTIONS_STUCKLONG spids:[34]) op: Equal rhs: (EmptyWord) spids: [34] ) ] spids: [34] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTIONS_SPEC spids:[36]) op: Equal rhs: { (SQ <'git request-pull [options] start url [end]\n'> <'--\n'> <'p show patch text as well\n'> ) } spids: [36] ) ] spids: [36] ) (C {(.)} {(git-sh-setup)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GIT_PAGER spids:[49]) op: Equal rhs: (EmptyWord) spids: [49] ) ] spids: [49] ) (C {(export)} {(GIT_PAGER)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:patch spids:[56]) op:Equal rhs:(EmptyWord) spids:[56])] spids: [56] ) (WhileUntil keyword: <KW_While while> cond: [ (Case to_match: {(DQ ($ VSub_Pound '$#'))} arms: [ (case_arm pat_list: [{(0)}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [68 69 73 16777215] ) ] spids: [60 66 75] ) ] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(-p)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:patch spids:[93]) op: Equal rhs: {(-p)} spids: [93] ) ] spids: [93] ) ] spids: [89 90 96 16777215] ) (case_arm pat_list: [{(--)}] action: [ (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (ControlFlow token:<ControlFlow_Break break>) ] spids: [99 100 108 16777215] ) (case_arm pat_list: [{(-) (Lit_Other '*')}] action: [(C {(usage)})] spids: [111 113 118 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [121 122 127 16777215] ) ] spids: [80 86 130] ) (C {(shift)}) ] spids: [77 135] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:base spids:[138]) op: Equal rhs: {($ VSub_Number '$1')} spids: [138] ) (assign_pair lhs: (LhsName name:url spids:[141]) op: Equal rhs: {($ VSub_Number '$2')} spids: [141] ) (assign_pair lhs:(LhsName name:status spids:[144]) op:Equal rhs:{(0)} spids:[144]) ] spids: [138] ) (AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(test)} {(-n)} {(DQ ($ VSub_Name '$base'))}) (C {(test)} {(-n)} {(DQ ($ VSub_Name '$url'))}) (C {(usage)}) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:baserev spids:[171]) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(DQ ($ VSub_Name '$base')) (Lit_Other '^') (0)} ) ] ) left_token: <Left_CommandSub '$('> spids: [172 186] ) } spids: [171] ) ] spids: [171] ) (If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$baserev'))})] action: [(C {(die)} {(DQ ('fatal: Not a valid revision: ') ($ VSub_Name '$base'))})] spids: [16777215 198] ) ] spids: [16777215 208] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:local spids:[226]) op: Equal rhs: { (BracedVarSub token: <VSub_Number 3> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(':*')}) spids: [227 231] ) } spids: [226] ) ] spids: [226] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:local spids:[233]) op: Equal rhs: { (BracedVarSub token: <VSub_Name local> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(HEAD)}) spids: [234 238] ) } spids: [233] ) ] spids: [233] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:remote spids:[240]) op: Equal rhs: { (BracedVarSub token: <VSub_Number 3> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*:')}) spids: [241 245] ) } spids: [240] ) ] spids: [240] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pretty_remote spids:[247]) op: Equal rhs: { (BracedVarSub token: <VSub_Name remote> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(refs) (Lit_Slash /)}) spids: [248 253] ) } spids: [247] ) ] spids: [247] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pretty_remote spids:[255]) op: Equal rhs: { (BracedVarSub token: <VSub_Name pretty_remote> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(heads) (Lit_Slash /)}) spids: [256 261] ) } spids: [255] ) ] spids: [255] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:head spids:[263]) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(symbolic-ref)} {(-q)} {(DQ ($ VSub_Name '$local'))})] ) left_token: <Left_CommandSub '$('> spids: [264 274] ) } spids: [263] ) ] spids: [263] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:head spids:[276]) op: Equal rhs: { (BracedVarSub token: <VSub_Name head> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(git)} {(show-ref)} {(--heads)} {(--tags)} {(DQ ($ VSub_Name '$local'))} ) (C {(cut)} {(-d) (SQ <' '>)} {(-f2)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [280 303] ) } ) spids: [277 304] ) } spids: [276] ) ] spids: [276] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:head spids:[306]) op: Equal rhs: { (BracedVarSub token: <VSub_Name head> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(rev-parse)} {(--quiet)} {(--verify)} {(DQ ($ VSub_Name '$local'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [310 322] ) } ) spids: [307 323] ) } spids: [306] ) ] spids: [306] ) (AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name '$head'))}) (C {(die)} {(DQ ('fatal: Not a valid revision: ') ($ VSub_Name '$local'))}) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:headrev spids:[353]) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(DQ ($ VSub_Name '$head')) (Lit_Other '^') (0)} ) ] ) left_token: <Left_CommandSub '$('> spids: [354 368] ) } spids: [353] ) ] spids: [353] ) (AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name '$headrev'))}) (C {(die)} {(DQ ('fatal: Ambiguous revision: ') ($ VSub_Name '$local'))}) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:branch_name spids:[391]) op: Equal rhs: { (BracedVarSub token: <VSub_Name head> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(refs) (Lit_Slash /) (heads) (Lit_Slash /)} ) spids: [392 399] ) } spids: [391] ) ] spids: [391] ) (If arms: [ (if_arm cond: [ (AndOr ops: [Op_DPipe] children: [ (C {(test)} {(DQ (z) ($ VSub_Name '$branch_name'))} {(Lit_Other '=')} {(DQ (z) ($ VSub_Name '$headref'))} ) (Pipeline children: [ (SimpleCommand words: [ {(git)} {(config)} {(DQ (branch.) ($ VSub_Name '$branch_name') (.description))} ] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) ] negated: T ) ] ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:branch_name spids:[438]) op: Equal rhs: (EmptyWord) spids: [438] ) ] spids: [438] ) ] spids: [16777215 435] ) ] spids: [16777215 440] ) (AndOr ops: [Op_DPipe] children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_base spids:[443]) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(merge-base)} {($ VSub_Name '$baserev')} {($ VSub_Name '$headrev')}) ] ) left_token: <Left_CommandSub '$('> spids: [444 452] ) } spids: [443] ) ] spids: [443] ) (C {(die)} { (DQ ('fatal: No commits in common between ') ($ VSub_Name '$base') (' and ') ($ VSub_Name '$head') ) } ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:find_matching_ref spids:[481]) op: Equal rhs: { (SQ <'\n'> <'\tmy ($head,$headrev) = (@ARGV);\n'> <'\tmy ($found);\n'> <'\n'> <'\twhile (<STDIN>) {\n'> <'\t\tchomp;\n'> <'\t\tmy ($sha1, $ref, $deref) = /^(\\S+)\\s+([^^]+)(\\S*)$/;\n'> <'\t\tmy ($pattern);\n'> <'\t\tnext unless ($sha1 eq $headrev);\n'> <'\n'> <'\t\t$pattern="/$head\\$";\n'> <'\t\tif ($ref eq $head) {\n'> <'\t\t\t$found = $ref;\n'> <'\t\t}\n'> <'\t\tif ($ref =~ /$pattern/) {\n'> <'\t\t\t$found = $ref;\n'> <'\t\t}\n'> <'\t\tif ($sha1 eq $head) {\n'> <'\t\t\t$found = $sha1;\n'> <'\t\t}\n'> <'\t}\n'> <'\tif ($found) {\n'> <'\t\tprint "$found\\n";\n'> <'\t}\n'> ) } spids: [481] ) ] spids: [481] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ref spids:[510]) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(git)} {(ls-remote)} {(DQ ($ VSub_Name '$url'))}) (C {(Lit_Other '@') (Lit_Other '@') (PERL) (Lit_Other '@') (Lit_Other '@')} {(-e)} {(DQ ($ VSub_Name '$find_matching_ref'))} { (DQ (BracedVarSub token: <VSub_Name remote> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(HEAD)}) spids: [535 539] ) ) } {(DQ ($ VSub_Name '$headrev'))} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [511 545] ) } spids: [510] ) ] spids: [510] ) (If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$ref'))})] action: [ (SimpleCommand words: [ {(echo)} { (DQ ('warn: No match for commit ') ($ VSub_Name '$headrev') (' found at ') ($ VSub_Name '$url') ) } ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (SimpleCommand words: [ {(echo)} { (DQ ("warn: Are you sure you pushed '") (BracedVarSub token: <VSub_Name remote> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(HEAD)}) spids: [578 582] ) ("' there?") ) } ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status spids:[590]) op: Equal rhs: {(1)} spids: [590] ) ] spids: [590] ) ] spids: [16777215 558] ) ] spids: [16777215 593] ) (If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ VSub_Name '$ref'))} {(Lit_Other '=')} {(DQ (refs/tags/) ($ VSub_Name '$pretty_remote'))} ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pretty_remote spids:[617]) op: Equal rhs: {(tags/) ($ VSub_Name '$pretty_remote')} spids: [617] ) ] spids: [617] ) ] spids: [16777215 614] ) ] spids: [16777215 621] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url spids:[624]) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(ls-remote)} {(--get-url)} {(DQ ($ VSub_Name '$url'))})] ) left_token: <Left_CommandSub '$('> spids: [625 635] ) } spids: [624] ) ] spids: [624] ) (AndOr ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DPipe] children: [ (C {(git)} {(show)} {(-s)} {(--format) (Lit_Other '=') (SQ <'The following changes since commit %H:\n'> <'\n'> <' %s (%ci)\n'> <'\n'> <'are available in the git repository at:\n'> ) } {($ VSub_Name '$merge_base')} ) (C {(echo)} {(DQ (' ') ($ VSub_Name '$url') (' ') ($ VSub_Name '$pretty_remote'))}) (C {(git)} {(show)} {(-s)} {(--format) (Lit_Other '=') (SQ <'\n'> <'for you to fetch changes up to %H:\n'> <'\n'> <' %s (%ci)\n'> <'\n'> <----------------------------------------------------------------> ) } {($ VSub_Name '$headrev')} ) (If arms: [ (if_arm cond: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(cat-file)} {(-t)} {(DQ ($ VSub_Name '$head'))})] ) left_token: <Left_CommandSub '$('> spids: [695 705] ) } {(Lit_Other '=')} {(tag)} ) ] action: [ (Pipeline children: [ (C {(git)} {(cat-file)} {(tag)} {(DQ ($ VSub_Name '$head'))}) (C {(sed)} {(-n)} {(-e)} {(SQ <'1,/^$/d'>)} {(-e)} {(SQ <'/^-----BEGIN PGP /q'>)} {(-e)} {(p)} ) ] negated: F ) (C {(echo)}) (C {(echo)} {(DQ (----------------------------------------------------------------))}) ] spids: [16777215 711] ) ] spids: [16777215 757] ) (If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$branch_name'))})] action: [ (C {(echo)} { (DQ ('(from the branch description for ') ($ VSub_Name '$branch_name') (' local branch)') ) } ) (C {(echo)}) (C {(git)} {(config)} {(DQ (branch.) ($ VSub_Name '$branch_name') (.description))}) (C {(echo)} {(DQ (----------------------------------------------------------------))}) ] spids: [16777215 772] ) ] spids: [16777215 804] ) (C {(git)} {(shortlog)} {(Lit_Other '^') ($ VSub_Name '$baserev')} {($ VSub_Name '$headrev')}) (C {(git)} {(diff)} {(-M)} {(--stat)} {(--summary)} {($ VSub_Name '$patch')} {($ VSub_Name '$merge_base') (..) ($ VSub_Name '$headrev')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:status spids:[838]) op:Equal rhs:{(1)} spids:[838])] spids: [838] ) ] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$status')}) ] )