(List (= scope= flags=0 words=[] bindings=[('OPTIONS_KEEPDASHDASH', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('OPTIONS_SPEC', {[DQ [LIT_CHARS "git-checkout [options] [] [...]\n"][LIT_CHARS "--\n"][LIT_CHARS "b= create a new branch started at \n"][LIT_CHARS "l create the new branch's reflog\n"][LIT_CHARS "track arrange that the new branch tracks the remote branch\n"][LIT_CHARS "f proceed even if the index or working tree is not HEAD\n"][LIT_CHARS "m merge local modifications into the new branch\n"][LIT_CHARS "q,quiet be quiet\n"]]})]) (= scope= flags=0 words=[] bindings=[('SUBDIRECTORY_OK', {[LIT_CHARS Sometimes]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-setup]}) (Com {[LIT_CHARS require_work_tree]}) (= scope= flags=0 words=[] bindings=[('old_name', {[LIT_CHARS HEAD]})]) (= scope= flags=0 words=[] bindings=[('old', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[VarSub old_name]})]})]) (= scope= flags=0 words=[] bindings=[('oldbranch', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS symbolic-ref]} {[VarSub old_name]})]})]) (= scope= flags=0 words=[] bindings=[('new', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('new_name', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('force', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('branch', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('track', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('newbranch', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('newbranch_log', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('merge', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('quiet', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('v', {[LIT_CHARS -v]})]) (= scope= flags=0 words=[] bindings=[('LF', {[SQ ]})]) (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 -b]}], [{[LIT_CHARS -l]}], [{[LIT_CHARS --track]}, {[LIT_CHARS --no-track]}], [{[LIT_CHARS -f]}], [{[LIT_CHARS -m]}], [{[LIT_CHARS -q]}, {[LIT_CHARS --quiet]}], [{[LIT_CHARS --]}], [{[LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('newbranch', {[DQ [VarSub 1]]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub newbranch]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "git checkout: -b needs a branch name"]]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS show-ref]} {[LIT_CHARS --verify]} {[LIT_CHARS --quiet]} {[LIT_CHARS --]} {[DQ [LIT_CHARS refs/heads/][VarSub newbranch]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "git checkout: branch "][VarSub newbranch][LIT_CHARS " already exists"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS check-ref-format]} {[DQ [LIT_CHARS heads/][VarSub newbranch]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "git checkout: we do not like '"][VarSub newbranch][LIT_CHARS "' as a branch name."]]}) ) ) (= scope= flags=0 words=[] bindings=[('newbranch_log', {[LIT_CHARS -l]})]) (= scope= flags=0 words=[] bindings=[('track', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('force', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('merge', {[LIT_CHARS 1]})]) (List (= scope= flags=0 words=[] bindings=[('quiet', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('v', {[SQ ]})]) ) (List (Com {[LIT_CHARS shift]}) (Com {[LIT_CHARS break]}) ) (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) ) ) (= scope= flags=0 words=[] bindings=[('arg', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('rev', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[DQ [VarSub arg]]})]})]) (If (= scope= flags=0 words=[] bindings=[('rev', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[DQ [VarSub rev][LIT_CHARS "^0"]]})]})]) (List (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub rev]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "unknown flag "][VarSub arg]]}) ) (= scope= flags=0 words=[] bindings=[('new_name', {[DQ [VarSub arg]]})]) (If (Com {[LIT_CHARS git]} {[LIT_CHARS show-ref]} {[LIT_CHARS --verify]} {[LIT_CHARS --quiet]} {[LIT_CHARS --]} {[DQ [LIT_CHARS refs/heads/][VarSub arg]]}) (List (= scope= flags=0 words=[] bindings=[('rev', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[DQ [LIT_CHARS refs/heads/][VarSub arg][LIT_CHARS "^0"]]})]})]) (= scope= flags=0 words=[] bindings=[('branch', {[DQ [VarSub arg]]})]) ) ) (= scope= flags=0 words=[] bindings=[('new', {[DQ [VarSub rev]]})]) (Com {[LIT_CHARS shift]}) ) (= scope= flags=0 words=[] bindings=[('rev', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[DQ [VarSub rev][LIT_CHARS "^{tree}"]]})]})]) (List (= scope= flags=0 words=[] bindings=[('new', {[DQ [VarSub rev]]})]) (= scope= flags=0 words=[] bindings=[('new_name', {[DQ [VarSub rev][LIT_CHARS "^{tree}"]]})]) (Com {[LIT_CHARS shift]}) ) ) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub 1]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS --]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS shift]}) ) (Case to_match={[DQ [VarSub newbranch][LIT_CHARS ","][VarSub track]]}, pat_word_list=[[{[LIT_COMMA ","] [LIT_CHARS --] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "git checkout: --track and --no-track require -b"]]}) ) (Case to_match={[DQ [VarSub force][VarSub merge]]}, pat_word_list=[[{[LIT_CHARS 11]}]] (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "git checkout: -f and -m are incompatible"]]}) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub #]]} {[LIT_CHARS -ge]} {[LIT_CHARS 1]}) (List (= scope= flags=0 words=[] bindings=[('hint', {[SQ ]})]) (If (Com {[LIT_CHARS test]} {[DQ [VarSub #]]} {[LIT_CHARS -eq]} {[LIT_CHARS 1]}) (= scope= flags=0 words=[] bindings=[('hint', {[DQ [LIT_CHARS "\n"][LIT_CHARS "Did you intend to checkout '"][VarSub @][LIT_CHARS "' which can not be resolved as commit?"]]})]) ) (If (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub newbranch][VarSub force][VarSub merge]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "git checkout: updating paths is incompatible with switching branches/forcing"][VarSub hint]]}) ) (If (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub new]]}) (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS ls-tree]} {[LIT_CHARS --full-name]} {[LIT_CHARS -r]} {[DQ [VarSub new]]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --index-info]}) ) (Com {[LIT_CHARS exit]} {[VarSub ?]}) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]} {[LIT_CHARS --full-name]} {[LIT_CHARS --error-unmatch]} {[LIT_CHARS --]} {[DQ [VarSub @]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS exit]}) ) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]} {[LIT_CHARS --full-name]} {[LIT_CHARS --]} {[DQ [VarSub @]]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd_to_toplevel]}) (Com {[LIT_CHARS git]} {[LIT_CHARS checkout-index]} {[LIT_CHARS -f]} {[LIT_CHARS -u]} {[LIT_CHARS --stdin]}) ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -x]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/post-checkout]}) (Com {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/post-checkout]} {[VarSub old]} {[VarSub old]} {[LIT_CHARS 0]}) ) (Com {[LIT_CHARS exit]} {[VarSub ?]}) ) (ElseTrue) (If (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub new]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[DQ [VarSub new][LIT_CHARS "^{commit}"]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Cannot switch branch to a non-commit."]]}) ) ) ) (Com {[LIT_CHARS cd_to_toplevel]}) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub new]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('new', {[VarSub old]})]) (= scope= flags=0 words=[] bindings=[('new_name', {[DQ [VarSub old_name]]})]) ) ) (= scope= flags=0 words=[] bindings=[('detached', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('detach_warn', {[SQ ]})]) (FunctionDef describe_detached_head [] (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub quiet]]}) (List (Com {[LIT_CHARS printf]} {[DQ [VarSub 1][LIT_CHARS " "]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS -1]} {[LIT_CHARS --pretty] [LIT_OTHER "="] [LIT_CHARS oneline]} {[LIT_CHARS --abbrev-commit]} {[DQ [VarSub 2]]} {[LIT_CHARS --]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > more_env=[('GIT_PAGER', {[SQ ]})] ) ) ) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub branch][VarSub newbranch]]}) (Com {[LIT_CHARS test]} {[DQ [VarSub new_name]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub old_name]]}) ) (List (= scope= flags=0 words=[] bindings=[('detached', {[DQ [VarSub new]]})]) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub oldbranch]]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub quiet]]}) ) (= scope= flags=0 words=[] bindings=[('detach_warn', {[DQ [LIT_CHARS "Note: moving to "][\ LIT_ESCAPED_CHAR "\\\""][VarSub new_name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " which isn't a local branch\n"][LIT_CHARS "If you want to create a new branch from this checkout, you may do so\n"][LIT_CHARS "(now or later) by using -b with the checkout command again. Example:\n"][LIT_CHARS " git checkout -b "]]})]) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub oldbranch]]}) (Com {[LIT_CHARS test]} {[DQ [VarSub new]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub old]]}) ) (Com {[LIT_CHARS describe_detached_head]} {[SQ ]} {[DQ [VarSub old]]}) ) (If (Com {[LIT_OTHER "["]} {[DQ [LIT_CHARS X][VarSub old]]} {[LIT_OTHER "="]} {[LIT_CHARS X]} {[LIT_OTHER "]"]}) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub quiet]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "warning: You appear to be on a branch yet to be born."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "warning: Forcing checkout of "][VarSub new_name][LIT_CHARS .]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) ) (= scope= flags=0 words=[] bindings=[('force', {[LIT_CHARS 1]})]) ) ) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub force]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[VarSub v]} {[LIT_CHARS --reset]} {[LIT_CHARS -u]} {[VarSub new]}) (ElseTrue) (List (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --refresh]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[VarSub v]} {[LIT_CHARS -m]} {[LIT_CHARS -u]} {[LIT_CHARS --exclude-per-directory] [LIT_OTHER "="] [LIT_CHARS .gitignore]} {[VarSub old]} {[VarSub new]}) (Subshell (List (Case to_match={[DQ [VarSub merge][LIT_CHARS ","][VarSub v]]}, pat_word_list=[[{[LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_CHARS 1] [LIT_COMMA ","]}], [{[LIT_OTHER "*"]}]] (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Falling back to 3-way merge..."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS diff-files]} {[LIT_CHARS --name-only]}) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --remove]} {[LIT_CHARS --stdin]}) ) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('work', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS write-tree]})]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[VarSub v]} {[LIT_CHARS --reset]} {[LIT_CHARS -u]} {[VarSub new]}) (Com {[LIT_CHARS exit]}) ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS eval]} {[LIT_CHARS GITHEAD_] [VarSub new] [LIT_OTHER "="] [SQ ]}) (AndOr OP_AND_IF (Com {[LIT_CHARS eval]} {[LIT_CHARS GITHEAD_] [VarSub work] [LIT_OTHER "="] [LIT_CHARS local]}) (AndOr OP_AND_IF (= scope= flags=1 words=[{[LIT_CHARS GITHEAD_] [VarSub new]}, {[LIT_CHARS GITHEAD_] [VarSub work]}] bindings=[]) (Com {[LIT_CHARS git]} {[LIT_CHARS merge-recursive]} {[VarSub old]} {[LIT_CHARS --]} {[VarSub new]} {[VarSub work]}) ) ) ) (= scope= flags=0 words=[] bindings=[('unmerged', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]} {[LIT_CHARS -u]})]})]) (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[VarSub v]} {[LIT_CHARS --reset]} {[VarSub new]}) (Case to_match={[DQ [VarSub unmerged]]}, pat_word_list=[[{[SQ ]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (Pipeline (Subshell (List (= scope= flags=0 words=[] bindings=[('z40', {[LIT_CHARS 0000000000000000000000000000000000000000]})]) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub unmerged]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ] [DQ [LIT_CHARS "0 "][VarSub z40][LIT_CHARS " /"]]}) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub unmerged]]}) ) ) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --index-info]}) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) ) ) (= scope= flags=0 words=[] bindings=[('saved_err', {[VarSub ?]})]) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub saved_err]]} {[LIT_OTHER "="]} {[LIT_CHARS 0]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub quiet]]}) ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff-index]} {[LIT_CHARS --name-status]} {[DQ [VarSub new]]}) ) (Subshell (Com {[LIT_CHARS exit]} {[VarSub saved_err]}) ) ) ) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub ?]]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (List (If (Com {[LIT_OTHER "["]} {[DQ [VarSub newbranch]]} {[LIT_OTHER "]"]}) (List (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS branch]} {[VarSub track]} {[VarSub newbranch_log]} {[DQ [VarSub newbranch]]} {[DQ [VarSub new_name]]}) (Com {[LIT_CHARS exit]}) ) (= scope= flags=0 words=[] bindings=[('branch', {[DQ [VarSub newbranch]]})]) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub branch]]}) (List (= scope= flags=0 words=[] bindings=[('old_branch_name', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub oldbranch]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (Com {[LIT_CHARS git]} {[LIT_CHARS symbolic-ref]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "checkout: moving from "][VarSub old_branch_name test_op=VS_TEST_COLON_HYPHEN {[VarSub old]}][LIT_CHARS " to "][VarSub branch]]} {[LIT_CHARS HEAD]} {[DQ [LIT_CHARS refs/heads/][VarSub branch]]} more_env=[('GIT_DIR', {[DQ [VarSub GIT_DIR]]})] ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub quiet]]}) (Com {[LIT_CHARS true]}) (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS refs/heads/][VarSub branch]]} {[LIT_OTHER "="]} {[DQ [VarSub oldbranch]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Already on branch "][\ LIT_ESCAPED_CHAR "\\\""][VarSub branch][\ LIT_ESCAPED_CHAR "\\\""]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Switched to"][VarSub newbranch test_op=VS_TEST_COLON_PLUS {[LIT_CHARS " a new"]}][LIT_CHARS " branch "][\ LIT_ESCAPED_CHAR "\\\""][VarSub branch][\ LIT_ESCAPED_CHAR "\\\""]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) ) (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub detached]]}) (List (= scope= flags=0 words=[] bindings=[('old_branch_name', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub oldbranch]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS update-ref]} {[LIT_CHARS --no-deref]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "checkout: moving from "][VarSub old_branch_name test_op=VS_TEST_COLON_HYPHEN {[VarSub old]}][LIT_CHARS " to "][VarSub arg]]} {[LIT_CHARS HEAD]} {[DQ [VarSub detached]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Cannot detach HEAD"]]}) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub detach_warn]]}) (Com {[LIT_CHARS echo]} {[DQ [VarSub detach_warn]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) (Com {[LIT_CHARS describe_detached_head]} {[SQ ]} {[LIT_CHARS HEAD]}) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub GIT_DIR][LIT_CHARS /MERGE_HEAD]]}) ) (ElseTrue) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -x]} {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/post-checkout]}) (Com {[DQ [VarSub GIT_DIR]] [LIT_CHARS /hooks/post-checkout]} {[VarSub old]} {[VarSub new]} {[LIT_CHARS 1]}) ) )