(List (= scope= flags=0 words=[] bindings=[('V', {[VarSub 1]})]) (If (Com {[LIT_CHARS test]} {[DQ [ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --git-dir]})]]} {[LIT_DBRACKET_LIKE "="]} {[SQ ]} ) (= scope= flags=0 words=[] bindings=[('V', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS describe]} {[LIT_CHARS --abbrev] [LIT_DBRACKET_LIKE "="] [LIT_CHARS 4]} {[LIT_CHARS HEAD]})]})]) ) (= scope= flags=0 words=[] bindings=[('new', {[DQ [LIT_CHARS "CGIT_VERSION = "][VarSub V]]})]) (= scope= flags=0 words=[] bindings=[('old', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS cat]} {[LIT_CHARS VERSION]})]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub old]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub new]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]} ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub new]]} < (FilenameRedirectNode filename={[LIT_CHARS VERSION]} "> 1), > ) (Com {[LIT_CHARS cat]} {[LIT_CHARS VERSION]} ) )