(List (= scope= flags=0 words=[] bindings=[('USAGE', {[SQ | -F | (-C|-c) | --amend] [-u] [-e] [--author ] [--template ] [[-i | -o] ...]">]})]) (= scope= flags=0 words=[] bindings=[('SUBDIRECTORY_OK', {[LIT_CHARS Yes]})]) (= scope= flags=0 words=[] bindings=[('OPTIONS_SPEC', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-setup]}) (Com {[LIT_CHARS require_work_tree]}) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[LIT_CHARS HEAD]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (= scope= flags=0 words=[] bindings=[('initial_commit', {[LIT_CHARS t]})]) ) (Case to_match={[DQ [VarSub 0]]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_CHARS status]}], [{[LIT_OTHER "*"] [LIT_CHARS commit]}]] (= scope= flags=0 words=[] bindings=[('status_only', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('status_only', {[SQ ]})]) ) (FunctionDef refuse_partial [] (List (Com {[LIT_CHARS echo]} {[DQ [VarSub 1]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "You might have meant to say 'git commit -i paths...', perhaps?"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('TMP_INDEX', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('THIS_INDEX', {[DQ [VarSub GIT_INDEX_FILE test_op=VS_TEST_COLON_HYPHEN {[VarSub GIT_DIR] [LIT_SLASH /] [LIT_CHARS index]}]]})]) (= scope= flags=0 words=[] bindings=[('NEXT_INDEX', {[DQ [VarSub GIT_DIR][LIT_CHARS /next-index][VarSub $]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub NEXT_INDEX]]}) (FunctionDef save_index [] (Com {[LIT_CHARS cp]} {[LIT_CHARS -p]} {[DQ [VarSub THIS_INDEX]]} {[DQ [VarSub NEXT_INDEX]]}) ) (FunctionDef run_status [] (List (If (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub TMP_INDEX]]}) (List (= scope= flags=0 words=[] bindings=[('GIT_INDEX_FILE', {[DQ [VarSub TMP_INDEX]]})]) (= scope= flags=1 words=[{[LIT_CHARS GIT_INDEX_FILE]}] bindings=[]) ) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub NEXT_INDEX]]}) (List (= scope= flags=0 words=[] bindings=[('GIT_INDEX_FILE', {[DQ [VarSub NEXT_INDEX]]})]) (= scope= flags=1 words=[{[LIT_CHARS GIT_INDEX_FILE]}] bindings=[]) ) ) (If (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[DQ [VarSub status_only]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS t]]}) (Com {[LIT_CHARS test]} {[DQ [VarSub use_status_color]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS t]]}) ) (= scope= flags=0 words=[] bindings=[('color', {[SQ ]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('color', {[LIT_CHARS --nocolor]})]) ) (Com {[LIT_CHARS git]} {[LIT_CHARS runstatus]} {[VarSub color]} {[VarSub verbose test_op=VS_TEST_COLON_PLUS {[LIT_CHARS --verbose]}]} {[VarSub amend test_op=VS_TEST_COLON_PLUS {[LIT_CHARS --amend]}]} {[VarSub untracked_files test_op=VS_TEST_COLON_PLUS {[LIT_CHARS --untracked]}]}) ) ) (Com {[LIT_CHARS trap]} {[SQ ]} {[LIT_CHARS 0]}) (= scope= flags=0 words=[] bindings=[('all', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('also', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('allow_empty', {[LIT_CHARS f]})]) (= scope= flags=0 words=[] bindings=[('interactive', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('only', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('logfile', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('use_commit', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('amend', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('edit_flag', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('log_given', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('log_message', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('verify', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('quiet', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('verbose', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('signoff', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('force_author', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('only_include_assumed', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('untracked_files', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('templatefile', {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS commit.template]})]]})]) (While (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[LIT_CHARS 0]}) (List (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS -F]}, {[LIT_CHARS --F]}, {[LIT_CHARS -f]}, {[LIT_CHARS --f]}, {[LIT_CHARS --fi]}, {[LIT_CHARS --fil]}, {[LIT_CHARS --file]}], [{[LIT_CHARS -F] [LIT_OTHER "*"]}, {[LIT_CHARS -f] [LIT_OTHER "*"]}], [{[LIT_CHARS --F] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --f] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --fi] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --fil] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --file] [LIT_OTHER "="] [LIT_OTHER "*"]}], [{[LIT_CHARS -a]}, {[LIT_CHARS --a]}, {[LIT_CHARS --al]}, {[LIT_CHARS --all]}], [{[LIT_CHARS --allo]}, {[LIT_CHARS --allow]}, {[LIT_CHARS --allow-]}, {[LIT_CHARS --allow-e]}, {[LIT_CHARS --allow-em]}, {[LIT_CHARS --allow-emp]}, {[LIT_CHARS --allow-empt]}, {[LIT_CHARS --allow-empty]}], [{[LIT_CHARS --au] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --aut] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --auth] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --autho] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --author] [LIT_OTHER "="] [LIT_OTHER "*"]}], [{[LIT_CHARS --au]}, {[LIT_CHARS --aut]}, {[LIT_CHARS --auth]}, {[LIT_CHARS --autho]}, {[LIT_CHARS --author]}], [{[LIT_CHARS -e]}, {[LIT_CHARS --e]}, {[LIT_CHARS --ed]}, {[LIT_CHARS --edi]}, {[LIT_CHARS --edit]}], [{[LIT_CHARS -i]}, {[LIT_CHARS --i]}, {[LIT_CHARS --in]}, {[LIT_CHARS --inc]}, {[LIT_CHARS --incl]}, {[LIT_CHARS --inclu]}, {[LIT_CHARS --includ]}, {[LIT_CHARS --include]}], [{[LIT_CHARS --int]}, {[LIT_CHARS --inte]}, {[LIT_CHARS --inter]}, {[LIT_CHARS --intera]}, {[LIT_CHARS --interac]}, {[LIT_CHARS --interact]}, {[LIT_CHARS --interacti]}, {[LIT_CHARS --interactiv]}, {[LIT_CHARS --interactive]}], [{[LIT_CHARS -o]}, {[LIT_CHARS --o]}, {[LIT_CHARS --on]}, {[LIT_CHARS --onl]}, {[LIT_CHARS --only]}], [{[LIT_CHARS -m]}, {[LIT_CHARS --m]}, {[LIT_CHARS --me]}, {[LIT_CHARS --mes]}, {[LIT_CHARS --mess]}, {[LIT_CHARS --messa]}, {[LIT_CHARS --messag]}, {[LIT_CHARS --message]}], [{[LIT_CHARS -m] [LIT_OTHER "*"]}], [{[LIT_CHARS --m] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --me] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --mes] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --mess] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --messa] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --messag] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --message] [LIT_OTHER "="] [LIT_OTHER "*"]}], [{[LIT_CHARS -n]}, {[LIT_CHARS --n]}, {[LIT_CHARS --no]}, {[LIT_CHARS --no-]}, {[LIT_CHARS --no-v]}, {[LIT_CHARS --no-ve]}, {[LIT_CHARS --no-ver]}, {[LIT_CHARS --no-veri]}, {[LIT_CHARS --no-verif]}, {[LIT_CHARS --no-verify]}], [{[LIT_CHARS --a]}, {[LIT_CHARS --am]}, {[LIT_CHARS --ame]}, {[LIT_CHARS --amen]}, {[LIT_CHARS --amend]}], [{[LIT_CHARS -c]}], [{[LIT_CHARS --ree] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reed] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reedi] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reedit] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reedit-] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reedit-m] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reedit-me] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reedit-mes] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reedit-mess] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reedit-messa] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reedit-messag] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reedit-message] [LIT_OTHER "="] [LIT_OTHER "*"]}], [{[LIT_CHARS --ree]}, {[LIT_CHARS --reed]}, {[LIT_CHARS --reedi]}, {[LIT_CHARS --reedit]}, {[LIT_CHARS --reedit-]}, {[LIT_CHARS --reedit-m]}, {[LIT_CHARS --reedit-me]}, {[LIT_CHARS --reedit-mes]}, {[LIT_CHARS --reedit-mess]}, {[LIT_CHARS --reedit-messa]}, {[LIT_CHARS --reedit-messag]}, {[LIT_CHARS --reedit-message]}], [{[LIT_CHARS -C]}], [{[LIT_CHARS --reu] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reus] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reuse] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reuse-] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reuse-m] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reuse-me] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reuse-mes] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reuse-mess] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reuse-messa] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reuse-messag] [LIT_OTHER "="] [LIT_OTHER "*"]}, {[LIT_CHARS --reuse-message] [LIT_OTHER "="] [LIT_OTHER "*"]}], [{[LIT_CHARS --reu]}, {[LIT_CHARS --reus]}, {[LIT_CHARS --reuse]}, {[LIT_CHARS --reuse-]}, {[LIT_CHARS --reuse-m]}, {[LIT_CHARS --reuse-me]}, {[LIT_CHARS --reuse-mes]}, {[LIT_CHARS --reuse-mess]}, {[LIT_CHARS --reuse-messa]}, {[LIT_CHARS --reuse-messag]}, {[LIT_CHARS --reuse-message]}], [{[LIT_CHARS -s]}, {[LIT_CHARS --s]}, {[LIT_CHARS --si]}, {[LIT_CHARS --sig]}, {[LIT_CHARS --sign]}, {[LIT_CHARS --signo]}, {[LIT_CHARS --signof]}, {[LIT_CHARS --signoff]}], [{[LIT_CHARS -t]}, {[LIT_CHARS --t]}, {[LIT_CHARS --te]}, {[LIT_CHARS --tem]}, {[LIT_CHARS --temp]}, {[LIT_CHARS --templ]}, {[LIT_CHARS --templa]}, {[LIT_CHARS --templat]}, {[LIT_CHARS --template]}], [{[LIT_CHARS -q]}, {[LIT_CHARS --q]}, {[LIT_CHARS --qu]}, {[LIT_CHARS --qui]}, {[LIT_CHARS --quie]}, {[LIT_CHARS --quiet]}], [{[LIT_CHARS -v]}, {[LIT_CHARS --v]}, {[LIT_CHARS --ve]}, {[LIT_CHARS --ver]}, {[LIT_CHARS --verb]}, {[LIT_CHARS --verbo]}, {[LIT_CHARS --verbos]}, {[LIT_CHARS --verbose]}], [{[LIT_CHARS -u]}, {[LIT_CHARS --u]}, {[LIT_CHARS --un]}, {[LIT_CHARS --unt]}, {[LIT_CHARS --untr]}, {[LIT_CHARS --untra]}, {[LIT_CHARS --untrac]}, {[LIT_CHARS --untrack]}, {[LIT_CHARS --untracke]}, {[LIT_CHARS --untracked]}, {[LIT_CHARS --untracked-]}, {[LIT_CHARS --untracked-f]}, {[LIT_CHARS --untracked-fi]}, {[LIT_CHARS --untracked-fil]}, {[LIT_CHARS --untracked-file]}, {[LIT_CHARS --untracked-files]}], [{[LIT_CHARS --]}], [{[LIT_CHARS -] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (List (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 1]}]] (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('no_edit', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS t] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('logfile', {[DQ [VarSub 1]]})]) ) (List (= scope= flags=0 words=[] bindings=[('no_edit', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS t] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('logfile', {[DQ [VarSub 1 transform_ops=[VS_UNARY_POUND {[LIT_CHARS "-[Ff]"]}]]]})]) ) (List (= scope= flags=0 words=[] bindings=[('no_edit', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS t] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('logfile', {[DQ [VarSub 1 transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*="]}]]]})]) ) (= scope= flags=0 words=[] bindings=[('all', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('allow_empty', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('force_author', {[DQ [VarSub 1 transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*="]}]]]})]) (List (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 1]}]] (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('force_author', {[DQ [VarSub 1]]})]) ) (= scope= flags=0 words=[] bindings=[('edit_flag', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('also', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('interactive', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('only', {[LIT_CHARS t]})]) (List (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 1]}]] (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS m] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('log_message', {[DQ [VarSub log_message test_op=VS_TEST_COLON_PLUS {[VarSub log_message] [LIT_CHARS "\n"] [LIT_CHARS "\n"]}][VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[LIT_CHARS t]})]) ) (List (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS m] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('log_message', {[DQ [VarSub log_message test_op=VS_TEST_COLON_PLUS {[VarSub log_message] [LIT_CHARS "\n"] [LIT_CHARS "\n"]}][VarSub 1 transform_ops=[VS_UNARY_POUND {[LIT_CHARS -m]}]]]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[LIT_CHARS t]})]) ) (List (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS m] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('log_message', {[DQ [VarSub log_message test_op=VS_TEST_COLON_PLUS {[VarSub log_message] [LIT_CHARS "\n"] [LIT_CHARS "\n"]}][VarSub 1 transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*="]}]]]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[LIT_CHARS t]})]) ) (= scope= flags=0 words=[] bindings=[('verify', {[SQ ]})]) (List (= scope= flags=0 words=[] bindings=[('amend', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('use_commit', {[LIT_CHARS HEAD]})]) ) (List (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 1]}]] (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS t] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('use_commit', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[SQ ]})]) ) (List (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS t] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('use_commit', {[DQ [VarSub 1 transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*="]}]]]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[SQ ]})]) ) (List (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 1]}]] (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS t] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('use_commit', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[SQ ]})]) ) (List (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 1]}]] (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS t] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('use_commit', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[LIT_CHARS t]})]) ) (List (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS t] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('use_commit', {[DQ [VarSub 1 transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*="]}]]]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[LIT_CHARS t]})]) ) (List (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 1]}]] (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('log_given', {[LIT_CHARS t] [VarSub log_given]})]) (= scope= flags=0 words=[] bindings=[('use_commit', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[LIT_CHARS t]})]) ) (= scope= flags=0 words=[] bindings=[('signoff', {[LIT_CHARS t]})]) (List (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 1]}]] (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('templatefile', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('no_edit', {[SQ ]})]) ) (= scope= flags=0 words=[] bindings=[('quiet', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('verbose', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('untracked_files', {[LIT_CHARS t]})]) (List (Com {[LIT_CHARS shift]}) (Com {[LIT_CHARS break]}) ) (Com {[LIT_CHARS usage]}) (Com {[LIT_CHARS break]}) ) (Com {[LIT_CHARS shift]}) ) ) (Case to_match={[DQ [VarSub edit_flag]]}, pat_word_list=[[{[LIT_CHARS t]}]] (= scope= flags=0 words=[] bindings=[('no_edit', {[SQ ]})]) ) (Case to_match={[DQ [VarSub amend][LIT_CHARS ","][VarSub initial_commit]]}, pat_word_list=[[{[LIT_CHARS t] [LIT_COMMA ","] [LIT_CHARS t]}], [{[LIT_CHARS t] [LIT_COMMA ","]}]] (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "You do not have anything to amend."]]}) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_HEAD]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "You are in the middle of a merge -- cannot amend."]]}) ) ) (Case to_match={[DQ [VarSub log_given]]}, pat_word_list=[[{[LIT_CHARS tt] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"] [LIT_CHARS tm] [LIT_OTHER "*"]}, {[LIT_OTHER "*"] [LIT_CHARS mt] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Only one of -c/-C/-F can be used."]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Option -m cannot be combined with -c/-C/-F."]]}) ) (Case to_match={[DQ [VarSub #][LIT_CHARS ","][VarSub also][LIT_CHARS ","][VarSub only][LIT_CHARS ","][VarSub amend]]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_CHARS t] [LIT_COMMA ","] [LIT_CHARS t] [LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_CHARS 0] [LIT_COMMA ","] [LIT_CHARS t] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_OTHER "*"]}, {[LIT_CHARS 0] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_CHARS t] [LIT_COMMA ","]}], [{[LIT_CHARS 0] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_CHARS t] [LIT_COMMA ","] [LIT_CHARS t]}], [{[LIT_CHARS 0] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Only one of --include/--only can be used."]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "No paths with --include/--only does not make sense."]]}) (= scope= flags=0 words=[] bindings=[('only_include_assumed', {[DQ [LIT_CHARS "# Clever... amending the last one with dirty index."]]})]) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('only_include_assumed', {[DQ [LIT_CHARS "# Explicit paths specified without -i or -o; assuming --only paths..."]]})]) (= scope= flags=0 words=[] bindings=[('also', {[SQ ]})]) ) ) (Com {[LIT_CHARS unset]} {[LIT_CHARS only]}) (Case to_match={[DQ [VarSub all][LIT_CHARS ","][VarSub interactive][LIT_CHARS ","][VarSub also][LIT_CHARS ","][VarSub #]]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_CHARS t] [LIT_COMMA ","] [LIT_OTHER "*"] [LIT_CHARS t] [LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_CHARS t] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_OTHER "["] [LIT_CHARS 1-9] [LIT_OTHER "]"] [LIT_OTHER "*"]}], [{[LIT_COMMA ","] [LIT_CHARS t] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_OTHER "["] [LIT_CHARS 1-9] [LIT_OTHER "]"] [LIT_OTHER "*"]}], [{[LIT_COMMA ","] [LIT_COMMA ","] [LIT_CHARS t] [LIT_COMMA ","] [LIT_CHARS 0]}]] (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Cannot use -a, --interactive or -i at the same time."]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Paths with -a does not make sense."]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Paths with --interactive does not make sense."]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "No paths with -i does not make sense."]]}) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub templatefile]]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub log_given]]}) ) (If (Com {[LIT_CHARS test]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub templatefile]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Commit template file does not exist."]]}) ) ) (Case to_match={[DQ [VarSub all][LIT_CHARS ","][VarSub also]]}, pat_word_list=[[{[LIT_CHARS t] [LIT_COMMA ","]}], [{[LIT_COMMA ","] [LIT_CHARS t]}], [{[LIT_COMMA ","]}]] (List (If (Com {[LIT_CHARS test]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub THIS_INDEX]]}) (Com {[LIT_CHARS die]} {[SQ ]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS save_index]}) (AndOr OP_OR_IF (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd_to_toplevel]}) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('GIT_INDEX_FILE', {[DQ [VarSub NEXT_INDEX]]})]) (AndOr OP_AND_IF (= scope= flags=1 words=[{[LIT_CHARS GIT_INDEX_FILE]}] bindings=[]) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS diff-files]} {[LIT_CHARS --name-only]} {[LIT_CHARS -z]}) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --remove]} {[LIT_CHARS -z]} {[LIT_CHARS --stdin]}) ) ) ) ) ) (Com {[LIT_CHARS exit]}) ) ) ) (List (AndOr OP_AND_IF (Com {[LIT_CHARS save_index]}) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]} {[LIT_CHARS --error-unmatch]} {[LIT_CHARS --]} {[DQ [VarSub @]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS exit]}) ) ) (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS diff-files]} {[LIT_CHARS --name-only]} {[LIT_CHARS -z]} {[LIT_CHARS --]} {[DQ [VarSub @]]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd_to_toplevel]}) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('GIT_INDEX_FILE', {[DQ [VarSub NEXT_INDEX]]})]) (AndOr OP_AND_IF (= scope= flags=1 words=[{[LIT_CHARS GIT_INDEX_FILE]}] bindings=[]) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --remove]} {[LIT_CHARS -z]} {[LIT_CHARS --stdin]}) ) ) ) ) ) (Com {[LIT_CHARS exit]}) ) ) (List (If (Com {[LIT_CHARS test]} {[DQ [VarSub interactive]]} {[LIT_OTHER "="]} {[LIT_CHARS t]}) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS --interactive]}) (Com {[LIT_CHARS exit]}) ) ) (Case to_match={[DQ [VarSub #]]}, pat_word_list=[[{[LIT_CHARS 0]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_HEAD]]}) (Com {[LIT_CHARS refuse_partial]} {[DQ [LIT_CHARS "Cannot do a partial commit during a merge."]]}) ) (= scope= flags=0 words=[] bindings=[('TMP_INDEX', {[DQ [VarSub GIT_DIR][LIT_CHARS /tmp-index][VarSub $]]})]) (= scope= flags=0 words=[] bindings=[('W', {[SQ ]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub initial_commit]]}) (= scope= flags=0 words=[] bindings=[('W', {[LIT_CHARS --with-tree] [LIT_OTHER "="] [LIT_CHARS HEAD]})]) ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('commit_only', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]} {[LIT_CHARS --error-unmatch]} {[VarSub W]} {[LIT_CHARS --]} {[DQ [VarSub @]]})]})]) (Com {[LIT_CHARS exit]}) ) (AndOr OP_OR_IF (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub initial_commit]]}) (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[LIT_CHARS --index-output] [LIT_OTHER "="] [DQ [VarSub TMP_INDEX]]} {[LIT_CHARS -i]} {[LIT_CHARS -m]} {[LIT_CHARS HEAD]} more_env=[('GIT_INDEX_FILE', {[DQ [VarSub THIS_INDEX]]})] ) (ElseTrue) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub TMP_INDEX]]}) ) (Com {[LIT_CHARS exit]}) ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS printf]} {[SQ ]} {[DQ [VarSub commit_only]]}) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --add]} {[LIT_CHARS --remove]} {[LIT_CHARS --stdin]} more_env=[('GIT_INDEX_FILE', {[DQ [VarSub TMP_INDEX]]})] ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS save_index]}) (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS printf]} {[SQ ]} {[DQ [VarSub commit_only]]}) (Subshell (List (= scope= flags=0 words=[] bindings=[('GIT_INDEX_FILE', {[DQ [VarSub NEXT_INDEX]]})]) (= scope= flags=1 words=[{[LIT_CHARS GIT_INDEX_FILE]}] bindings=[]) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --add]} {[LIT_CHARS --remove]} {[LIT_CHARS --stdin]}) ) ) ) (Com {[LIT_CHARS exit]}) ) ) ) ) ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub NEXT_INDEX]]}) (= scope= flags=0 words=[] bindings=[('USE_INDEX', {[DQ [VarSub NEXT_INDEX]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('USE_INDEX', {[DQ [VarSub THIS_INDEX]]})]) ) (Case to_match={[DQ [VarSub status_only]]}, pat_word_list=[[{[LIT_CHARS t]}], [{[SQ ]}]] (List (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS -q]} {[LIT_CHARS --unmerged]} {[LIT_CHARS --refresh]} more_env=[('GIT_INDEX_FILE', {[DQ [VarSub USE_INDEX]]})] ) (Com {[LIT_CHARS run_status]}) (Com {[LIT_CHARS exit]} {[VarSub ?]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS -q]} {[LIT_CHARS --refresh]} more_env=[('GIT_INDEX_FILE', {[DQ [VarSub USE_INDEX]]})] ) (Com {[LIT_CHARS exit]}) ) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS t]} {[LIT_OTHER "="]} {[DQ [VarSub verify]]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -x]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/pre-commit]}) ) (AndOr OP_OR_IF (Com {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/pre-commit]} more_env=[('GIT_INDEX_FILE', {[DQ [VarSub TMP_INDEX test_op=VS_TEST_COLON_HYPHEN {[VarSub USE_INDEX]}]]})] ) (Com {[LIT_CHARS exit]}) ) ) (Pipeline (If (Com {[LIT_CHARS test]} {[DQ [VarSub log_message]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[SQ ]}) (Com {[LIT_CHARS printf]} {[SQ ]} {[DQ [VarSub log_message]]}) (Com {[LIT_CHARS test]} {[DQ [VarSub logfile]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ ]}) (If (Com {[LIT_CHARS test]} {[DQ [VarSub logfile]]} {[LIT_OTHER "="]} {[LIT_CHARS -]}) (List (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -t]} {[LIT_CHARS 0]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "(reading log message from standard input)"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) (Com {[LIT_CHARS cat]}) ) (ElseTrue) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub logfile]]} 0), > ) ) (Com {[LIT_CHARS test]} {[DQ [VarSub use_commit]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ ]}) (List (= scope= flags=0 words=[] bindings=[('encoding', {[ComSub (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS i18n.commitencoding]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS UTF-8]}) )]})]) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS show]} {[LIT_CHARS -s]} {[LIT_CHARS --pretty] [LIT_OTHER "="] [LIT_CHARS raw]} {[LIT_CHARS --encoding] [LIT_OTHER "="] [DQ [VarSub encoding]]} {[DQ [VarSub use_commit]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) ) ) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_MSG]]}) (Com {[LIT_CHARS cat]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_MSG]]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /SQUASH_MSG]]}) (Com {[LIT_CHARS cat]} {[DQ [VarSub GIT_DIR][LIT_CHARS /SQUASH_MSG]]}) (Com {[LIT_CHARS test]} {[DQ [VarSub templatefile]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ ]}) (Com {[LIT_CHARS cat]} {[DQ [VarSub templatefile]]}) ) (Com {[LIT_CHARS git]} {[LIT_CHARS stripspace]} < (FilenameRedirectNode filename={[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_EDITMSG]} "> 1), > ) ) (Case to_match={[DQ [VarSub signoff]]}, pat_word_list=[[{[LIT_CHARS t]}]] (List (= scope= flags=0 words=[] bindings=[('sign', {[ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS var]} {[LIT_CHARS GIT_COMMITTER_IDENT]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ .*/>/\n"> ]}) )]})]) (= scope= flags=0 words=[] bindings=[('blank_before_signoff', {[SQ ]})]) (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS tail]} {[LIT_CHARS -n]} {[LIT_CHARS 1]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_EDITMSG]}) (Com {[LIT_CHARS grep]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (= scope= flags=0 words=[] bindings=[('blank_before_signoff', {[SQ ]})]) ) (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS tail]} {[LIT_CHARS -n]} {[LIT_CHARS 1]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_EDITMSG]}) (Com {[LIT_CHARS grep]} {[DQ [VarSub sign]] [LIT_OTHER "$"]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (Com {[LIT_CHARS printf]} {[SQ ]} {[DQ [VarSub blank_before_signoff]]} {[DQ [VarSub sign]]} < (FilenameRedirectNode filename={[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_EDITMSG]} >"> 1), > ) ) ) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_HEAD]]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub no_edit]]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "# It looks like you may be committing a MERGE."]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "# If this is not correct, please remove the file"]]}) (Com {[LIT_CHARS printf]} {[SQ ]} {[DQ [LIT_CHARS "#\t"][VarSub GIT_DIR][LIT_CHARS /MERGE_HEAD]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "# and try again"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#"]]}) ) ) (If (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub use_commit]]}) (List (Com {[LIT_CHARS eval]} {[DQ [ComSub (Com {[LIT_CHARS get_author_ident_from_commit]} {[DQ [VarSub use_commit]]})]]}) (= scope= flags=1 words=[{[LIT_CHARS GIT_AUTHOR_NAME]}, {[LIT_CHARS GIT_AUTHOR_EMAIL]}, {[LIT_CHARS GIT_AUTHOR_DATE]}] bindings=[]) ) ) (If (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub force_author]]}) (List (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_NAME', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub force_author]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_EMAIL', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub force_author]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub GIT_AUTHOR_NAME]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub GIT_AUTHOR_EMAIL]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "malformed --author parameter"]]}) ) ) ) ) (= scope= flags=1 words=[{[LIT_CHARS GIT_AUTHOR_NAME]}, {[LIT_CHARS GIT_AUTHOR_EMAIL]}] bindings=[]) ) ) (= scope= flags=0 words=[] bindings=[('PARENTS', {[DQ [LIT_CHARS "-p HEAD"]]})]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub initial_commit]]}) (List (= scope= flags=0 words=[] bindings=[('rloga', {[SQ ]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_HEAD]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('rloga', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('PARENTS', {[DQ [LIT_CHARS "-p HEAD "]] [ComSub (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_HEAD]]})]})]) ) (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub amend]]}) (List (= scope= flags=0 words=[] bindings=[('rloga', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('PARENTS', {[ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS commit]} {[LIT_CHARS HEAD]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) )]})]) ) ) (= scope= flags=0 words=[] bindings=[('current', {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[LIT_CHARS HEAD]})]]})]) ) (ElseTrue) (List (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]})]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[SQ ]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('PARENTS', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('rloga', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('current', {[SQ ]})]) ) ) (Com {[LIT_CHARS set_reflog_action]} {[DQ [VarSub rloga]]}) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub no_edit]]}) (List redirects=[(FilenameRedirectNode filename={[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_EDITMSG]} >"> 1)] (Com {[LIT_CHARS echo]} {[DQ ]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "# Please enter the commit message for your changes."]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "# (Comment lines starting with '#' will not be included)"]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub only_include_assumed]]}) (Com {[LIT_CHARS echo]} {[DQ [VarSub only_include_assumed]]}) ) (Com {[LIT_CHARS run_status]}) ) (ElseTrue) (Com {[LIT_CHARS run_status]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (Case to_match={[DQ [VarSub allow_empty][LIT_CHARS ","][VarSub ?][LIT_CHARS ","][VarSub PARENTS]]}, pat_word_list=[[{[LIT_CHARS t] [LIT_COMMA ","] [LIT_OTHER "*"]}, {[LIT_OTHER "?"] [LIT_COMMA ","] [LIT_CHARS 0] [LIT_COMMA ","] [LIT_OTHER "*"]}, {[LIT_OTHER "?"] [LIT_COMMA ","] [LIT_OTHER "*"] [LIT_COMMA ","] [LIT_CHARS -p] [SQ ] [LIT_OTHER "?"] [LIT_OTHER "*"] [LIT_CHARS -p] [SQ ] [LIT_OTHER "?"] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /COMMIT_EDITMSG]]} {[DQ [VarSub GIT_DIR][LIT_CHARS /SQUASH_MSG]]}) (= scope= flags=0 words=[] bindings=[('use_status_color', {[LIT_CHARS t]})]) (Com {[LIT_CHARS run_status]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Case to_match={[DQ [VarSub no_edit]]}, pat_word_list=[[{[SQ ]}]] (List (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS var]} {[LIT_CHARS GIT_AUTHOR_IDENT]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS die]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS var]} {[LIT_CHARS GIT_COMMITTER_IDENT]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS die]}) ) (Com {[LIT_CHARS git_editor]} {[DQ [VarSub GIT_DIR][LIT_CHARS /COMMIT_EDITMSG]]}) ) ) (Case to_match={[DQ [VarSub verify]]}, pat_word_list=[[{[LIT_CHARS t]}]] (If (Com {[LIT_CHARS test]} {[LIT_CHARS -x]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/commit-msg]}) (AndOr OP_OR_IF (Com {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/commit-msg]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_EDITMSG]}) (Com {[LIT_CHARS exit]}) ) ) ) (Pipeline (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub no_edit]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_EDITMSG]}) (ElseTrue) (Com {[LIT_CHARS cat]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_EDITMSG]}) ) (Com {[LIT_CHARS git]} {[LIT_CHARS stripspace]} < (FilenameRedirectNode filename={[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_MSG]} "> 1), > ) ) (= scope= flags=0 words=[] bindings=[('have_commitmsg', {[SQ ]})]) (Pipeline (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[LIT_CHARS -i]} {[SQ ]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_MSG]}) (Com {[LIT_CHARS git]} {[LIT_CHARS stripspace]} < (FilenameRedirectNode filename={[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_BAREMSG]} "> 1), > ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -s]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_BAREMSG]}) (If (Com {[LIT_CHARS test]} {[DQ [VarSub templatefile]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ ]}) (If (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('cnt', {[ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[DQ [VarSub templatefile]]} 0)]{[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]}) (Com {[LIT_CHARS git]} {[LIT_CHARS stripspace]}) (Com {[LIT_CHARS diff]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_BAREMSG]} {[LIT_CHARS -]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]})]) (Com {[LIT_CHARS test]} {[LIT_CHARS 0]} {[LIT_CHARS -lt]} {[VarSub cnt]}) ) (= scope= flags=0 words=[] bindings=[('have_commitmsg', {[LIT_CHARS t]})]) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('have_commitmsg', {[LIT_CHARS t]})]) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_BAREMSG]}) (If (Com {[LIT_CHARS test]} {[DQ [VarSub have_commitmsg]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS t]]}) (AndOr OP_AND_IF (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub TMP_INDEX]]}) (= scope= flags=0 words=[] bindings=[('tree', {[ComSub (Com more_env=[('GIT_INDEX_FILE', {[DQ [VarSub USE_INDEX]]})] {[LIT_CHARS git]} {[LIT_CHARS write-tree]})]})]) (ElseTrue) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('tree', {[ComSub (Com more_env=[('GIT_INDEX_FILE', {[DQ [VarSub TMP_INDEX]]})] {[LIT_CHARS git]} {[LIT_CHARS write-tree]})]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub TMP_INDEX]]}) ) ) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('commit', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[DQ [VarSub GIT_DIR][LIT_CHARS /COMMIT_MSG]]} 0)]{[LIT_CHARS git]} {[LIT_CHARS commit-tree]} {[VarSub tree]} {[VarSub PARENTS]})]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('rlogm', {[ComSub (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[LIT_CHARS 1q]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /COMMIT_MSG]})]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS update-ref]} {[LIT_CHARS -m]} {[DQ [VarSub GIT_REFLOG_ACTION][LIT_CHARS ": "][VarSub rlogm]]} {[LIT_CHARS HEAD]} {[VarSub commit]} {[DQ [VarSub current]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS --]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_HEAD]]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_MSG]]}) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub NEXT_INDEX]]}) (Com {[LIT_CHARS mv]} {[DQ [VarSub NEXT_INDEX]]} {[DQ [VarSub THIS_INDEX]]}) (ElseTrue) (Com {[LIT_OTHER ":"]}) ) ) ) ) ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* no commit message? aborting commit."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS false]}) ) ) (= scope= flags=0 words=[] bindings=[('ret', {[DQ [VarSub ?]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /COMMIT_MSG]]} {[DQ [VarSub GIT_DIR][LIT_CHARS /COMMIT_EDITMSG]]} {[DQ [VarSub GIT_DIR][LIT_CHARS /SQUASH_MSG]]}) (Com {[LIT_CHARS cd_to_toplevel]}) (Com {[LIT_CHARS git]} {[LIT_CHARS rerere]}) (If (Com {[LIT_CHARS test]} {[DQ [VarSub ret]]} {[LIT_OTHER "="]} {[LIT_CHARS 0]}) (List (Com {[LIT_CHARS git]} {[LIT_CHARS gc]} {[LIT_CHARS --auto]}) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -x]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/post-commit]}) (Com {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/post-commit]}) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub quiet]]}) (List (= scope= flags=0 words=[] bindings=[('commit', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS diff-tree]} {[LIT_CHARS --always]} {[LIT_CHARS --shortstat]} {[LIT_CHARS --pretty] [LIT_OTHER "="] [DQ [LIT_CHARS "format:%h: %s"]]} {[LIT_CHARS --abbrev]} {[LIT_CHARS --summary]} {[LIT_CHARS --root]} {[LIT_CHARS HEAD]} {[LIT_CHARS --]})]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS Created][VarSub initial_commit test_op=VS_TEST_COLON_PLUS {[LIT_CHARS " initial"]}][LIT_CHARS " commit "][VarSub commit]]}) ) ) ) ) (Com {[LIT_CHARS exit]} {[DQ [VarSub ret]]}) )