(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'USAGE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'USAGE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE) op: assign_op.Equal rhs: {(SQ <'<start> <url> [<end>]'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'LONG_USAGE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LONG_USAGE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LONG_USAGE='> name:LONG_USAGE) op: assign_op.Equal rhs: { (SQ <'Summarizes the changes between two commits to the standard output,\n'> <'and includes the given URL in the generated summary.'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SUBDIRECTORY_OK='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SUBDIRECTORY_OK='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBDIRECTORY_OK='> name:SUBDIRECTORY_OK) op: assign_op.Equal rhs: {(SQ <Yes>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OPTIONS_KEEPDASHDASH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OPTIONS_KEEPDASHDASH='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OPTIONS_KEEPDASHDASH='> name: OPTIONS_KEEPDASHDASH ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OPTIONS_STUCKLONG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OPTIONS_STUCKLONG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIONS_STUCKLONG='> name:OPTIONS_STUCKLONG) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OPTIONS_SPEC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OPTIONS_SPEC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIONS_SPEC='> name:OPTIONS_SPEC) op: assign_op.Equal rhs: { (SQ <'git request-pull [options] start url [end]\n'> <'--\n'> <'p show patch text as well\n'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {<git-sh-setup>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'GIT_PAGER='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GIT_PAGER='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_PAGER='> name:GIT_PAGER) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<GIT_PAGER>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'patch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'patch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'patch='> name:patch) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Pound '#'))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-p> pattern: (pat.Words words:[{<-p>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'patch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'patch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'patch='> name:patch) op: assign_op.Equal rhs: {<-p>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <--> pattern: (pat.Words words:[{<-->}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ControlFlow keyword:<Id.ControlFlow_Break break>) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-> pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <usage> more_env: [] words: [{<usage>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'base='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'base='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) (AssignPair left: <Id.Lit_VarLike 'url='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) (AssignPair left: <Id.Lit_VarLike 'status='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'status='> name:status) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName base))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName url))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <usage> more_env: [] words: [{<usage>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'baserev='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'baserev='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'baserev='> name:baserev) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--verify>} {<--quiet>} {(DQ ($ Id.VSub_DollarName base)) <Id.Lit_Other '^'> <0>} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName baserev))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <'fatal: Not a valid revision: '> ($ Id.VSub_DollarName base))}] redirects: [] do_fork: T ) ] spids: [188 198] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'local='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'local='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'local='> name:local) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<':'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'local='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'local='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'local='> name:local) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name local> var_name: local suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<HEAD>}) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'remote='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'remote='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote='> name:remote) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<Id.Lit_Other '*'> <':'>}) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'pretty_remote='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pretty_remote='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pretty_remote='> name:pretty_remote) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name remote> var_name: remote suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<refs> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'pretty_remote='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pretty_remote='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pretty_remote='> name:pretty_remote) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name pretty_remote> var_name: pretty_remote suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<heads> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'head='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'head='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'head='> name:head) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<symbolic-ref>} {<-q>} {(DQ ($ Id.VSub_DollarName local))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'head='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'head='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'head='> name:head) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name head> var_name: head suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<show-ref>} {<--heads>} {<--tags>} {(DQ ($ Id.VSub_DollarName local))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> (SQ <' '>)} {<-f2>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'head='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'head='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'head='> name:head) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name head> var_name: head suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--quiet>} {<--verify>} {(DQ ($ Id.VSub_DollarName local))} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName head))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <'fatal: Not a valid revision: '> ($ Id.VSub_DollarName local))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'headrev='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'headrev='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'headrev='> name:headrev) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<rev-parse>} {<--verify>} {<--quiet>} {(DQ ($ Id.VSub_DollarName head)) <Id.Lit_Other '^'> <0>} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName headrev))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <'fatal: Ambiguous revision: '> ($ Id.VSub_DollarName local))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'branch_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'branch_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'branch_name='> name:branch_name) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name head> var_name: head suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<refs> <Id.Lit_Slash '/'> <heads> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ <z> ($ Id.VSub_DollarName branch_name))} {<Id.Lit_Equals '='>} {(DQ <z> ($ Id.VSub_DollarName headref))} ] redirects: [] do_fork: T ) (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<config>} {(DQ <branch.> ($ Id.VSub_DollarName branch_name) <.description>)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ops: [] ) ] ops: [<Id.Op_DPipe _>] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'branch_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'branch_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'branch_name='> name:branch_name) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] spids: [403 437] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'merge_base='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'merge_base='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'merge_base='> name:merge_base) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<merge-base>} {($ Id.VSub_DollarName baserev)} {($ Id.VSub_DollarName headrev)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ <'fatal: No commits in common between '> ($ Id.VSub_DollarName base) <' and '> ($ Id.VSub_DollarName head) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'find_matching_ref='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'find_matching_ref='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'find_matching_ref='> name:find_matching_ref) op: assign_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'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ref='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ref='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ref='> name:ref) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<ls-remote>} {(DQ ($ Id.VSub_DollarName url))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Lit_At '@'> more_env: [] words: [ {<Id.Lit_At '@'> <Id.Lit_Splice '@PERL'> <Id.Lit_At '@'> <Id.Lit_At '@'>} {<-e>} {(DQ ($ Id.VSub_DollarName find_matching_ref))} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name remote> var_name: remote suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<HEAD>} ) right: <Id.Right_DollarBrace '}'> ) ) } {(DQ ($ Id.VSub_DollarName headrev))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName ref))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'warn: No match for commit '> ($ Id.VSub_DollarName headrev) <' found at '> ($ Id.VSub_DollarName url) ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'warn: Are you sure you pushed \''> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name remote> var_name: remote suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<HEAD>}) right: <Id.Right_DollarBrace '}'> ) <'\' there?'> ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'status='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'status='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'status='> name:status) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] spids: [549 559] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName ref))} {<Id.Lit_Equals '='>} {(DQ <'refs/tags/'> ($ Id.VSub_DollarName pretty_remote))} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'pretty_remote='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pretty_remote='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pretty_remote='> name:pretty_remote) op: assign_op.Equal rhs: {<'tags/'> ($ Id.VSub_DollarName pretty_remote)} ) ] redirects: [] ) ] spids: [600 615] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'url='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'url='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<ls-remote>} {<--get-url>} {(DQ ($ Id.VSub_DollarName url))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<show>} {<-s>} {<--format> <Id.Lit_Equals '='> (SQ <'The following changes since commit %H:\n'> <'\n'> <' %s (%ci)\n'> <'\n'> <'are available in the git repository at:\n'> ) } {($ Id.VSub_DollarName merge_base)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <' '> ($ Id.VSub_DollarName url) <' '> ($ Id.VSub_DollarName pretty_remote))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<show>} {<-s>} {<--format> <Id.Lit_Equals '='> (SQ <'\n'> <'for you to fetch changes up to %H:\n'> <'\n'> <' %s (%ci)\n'> <'\n'> <----------------------------------------------------------------> ) } {($ Id.VSub_DollarName headrev)} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<cat-file>} {<-t>} {(DQ ($ Id.VSub_DollarName head))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } {<Id.Lit_Equals '='>} {<tag>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Pipeline children: [ (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<cat-file>} {<tag>} {(DQ ($ Id.VSub_DollarName head))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-n>} {<-e>} {(SQ <'1,/^$/d'>)} {<-e>} {(SQ <'/^-----BEGIN PGP /q'>)} {<-e>} {<p>} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <---------------------------------------------------------------->)} ] redirects: [] do_fork: T ) ] spids: [692 712] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName branch_name))}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'(from the branch description for '> ($ Id.VSub_DollarName branch_name) <' local branch)'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<config>} {(DQ <branch.> ($ Id.VSub_DollarName branch_name) <.description>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <---------------------------------------------------------------->)} ] redirects: [] do_fork: T ) ] spids: [763 773] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<shortlog>} {<Id.Lit_Other '^'> ($ Id.VSub_DollarName baserev)} {($ Id.VSub_DollarName headrev)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<diff>} {<-M>} {<--stat>} {<--summary>} {($ Id.VSub_DollarName patch)} {($ Id.VSub_DollarName merge_base) <..> ($ Id.VSub_DollarName headrev)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'status='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'status='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'status='> name:status) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] ops: [ <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DPipe _> ] ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName status)} ) ] )