(List (= scope= flags=0 words=[] bindings=[('OPTIONS_KEEPDASHDASH', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('OPTIONS_SPEC', {[DQ [LIT_CHARS "git repack [options]\n"][LIT_CHARS "--\n"][LIT_CHARS "a pack everything in a single pack\n"][LIT_CHARS "A same as -a, and turn unreachable objects loose\n"][LIT_CHARS "d remove redundant packs, and run git-prune-packed\n"][LIT_CHARS "f pass --no-reuse-delta to git-pack-objects\n"][LIT_CHARS "F pass --no-reuse-object to git-pack-objects\n"][LIT_CHARS "n do not run git-update-server-info\n"][LIT_CHARS "q,quiet be quiet\n"][LIT_CHARS "l pass --local to git-pack-objects\n"][LIT_CHARS "unpack-unreachable= with -A, do not loosen objects older than this\n"][LIT_CHARS " Packing constraints\n"][LIT_CHARS "window= size of the window used for delta compression\n"][LIT_CHARS "window-memory= same as the above, but limit memory size instead of entries count\n"][LIT_CHARS "depth= limits the maximum delta depth\n"][LIT_CHARS "max-pack-size= maximum size of each packfile\n"]]})]) (= scope= flags=0 words=[] bindings=[('SUBDIRECTORY_OK', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-setup]} ) (= scope= flags=0 words=[] bindings=[('no_update_info', {[SQ ]}), ('all_into_one', {[SQ ]}), ('remove_redundant', {[SQ ]}), ('unpack_unreachable', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('local', {[SQ ]}), ('no_reuse', {[SQ ]}), ('extra', {[SQ ]})]) (While (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} ) (List (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS -n]}], [{[LIT_CHARS -a]}], [{[LIT_CHARS -A]}], [{[LIT_CHARS --unpack-unreachable]}], [{[LIT_CHARS -d]}], [{[LIT_CHARS -q]}], [{[LIT_CHARS -f]}], [{[LIT_CHARS -F]}], [{[LIT_CHARS -l]}], [{[LIT_CHARS --max-pack-size]}, {[LIT_CHARS --window]}, {[LIT_CHARS --window-memory]}, {[LIT_CHARS --depth]}], [{[LIT_CHARS --]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('no_update_info', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('all_into_one', {[LIT_CHARS t]})]) (List (= scope= flags=0 words=[] bindings=[('all_into_one', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('unpack_unreachable', {[LIT_CHARS --unpack-unreachable]})]) ) (List (= scope= flags=0 words=[] bindings=[('unpack_unreachable', {[DQ [LIT_CHARS "--unpack-unreachable="][VarSub 2]]})]) (Com {[LIT_CHARS shift]} ) ) (= scope= flags=0 words=[] bindings=[('remove_redundant', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('GIT_QUIET', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('no_reuse', {[LIT_CHARS --no-reuse-delta]})]) (= scope= flags=0 words=[] bindings=[('no_reuse', {[LIT_CHARS --no-reuse-object]})]) (= scope= flags=0 words=[] bindings=[('local', {[LIT_CHARS --local]})]) (List (= scope= flags=0 words=[] bindings=[('extra', {[DQ [VarSub extra][LIT_CHARS " "][VarSub 1][LIT_CHARS "="][VarSub 2]]})]) (Com {[LIT_CHARS shift]} ) ) (List (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS break]} ) ) (Com {[LIT_CHARS usage]} ) ) (Com {[LIT_CHARS shift]} ) ) ) (Case to_match={[DQ [ComSub (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS repack.usedeltabaseoffset]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS true]}) )]]}, pat_word_list=[[{[LIT_CHARS true]}]] (= scope= flags=0 words=[] bindings=[('extra', {[DQ [VarSub extra][LIT_CHARS " --delta-base-offset"]]})]) ) (= scope= flags=0 words=[] bindings=[('PACKDIR', {[DQ [VarSub GIT_OBJECT_DIRECTORY][LIT_CHARS /pack]]})]) (= scope= flags=0 words=[] bindings=[('PACKTMP', {[DQ [VarSub PACKDIR][LIT_CHARS /.tmp-][VarSub $][LIT_CHARS -pack]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub PACKTMP]] [LIT_CHARS -] [LIT_OTHER "*"]} ) (Com {[LIT_CHARS trap]} {[SQ ]} {[LIT_CHARS 0]} {[LIT_CHARS 1]} {[LIT_CHARS 2]} {[LIT_CHARS 3]} {[LIT_CHARS 15]} ) (Case to_match={[DQ [LIT_CHARS ","][VarSub all_into_one][LIT_CHARS ","]]}, pat_word_list=[[{[LIT_COMMA ","] [LIT_COMMA ","]}], [{[LIT_COMMA ","] [LIT_CHARS t] [LIT_COMMA ","]}]] (= scope= flags=0 words=[] bindings=[('args', {[SQ ]})]) (List (= scope= flags=0 words=[] bindings=[('args', {[SQ ]}), ('existing', {[SQ ]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -d]} {[DQ [VarSub PACKDIR]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (For e [{[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub PACKDIR]]}) (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS .]} {[LIT_CHARS -type]} {[LIT_CHARS f]} {[LIT_CHARS -name]} {[SQ ]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) ) )]}]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -e]} {[DQ [VarSub PACKDIR][LIT_CHARS /][VarSub e][LIT_CHARS .keep]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_OTHER ":"]} {[LIT_CHARS keep]} ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('existing', {[DQ [VarSub existing][LIT_CHARS " "][VarSub e]]})]) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub existing]]} {[LIT_CHARS -a]} {[LIT_CHARS -n]} {[DQ [VarSub unpack_unreachable]]} {[LIT_CHARS -a]} {[LIT_CHARS -n]} {[DQ [VarSub remove_redundant]]} ) (= scope= flags=0 words=[] bindings=[('args', {[DQ [VarSub args][LIT_CHARS " "][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub unpack_unreachable]]}) (Com {[LIT_CHARS tr]} {[SQ ]} {[LIT_CHARS .]}) )]]})]) ) ) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub PACKDIR]]} ) (Com {[LIT_CHARS exit]} ) ) (= scope= flags=0 words=[] bindings=[('args', {[DQ [VarSub args][LIT_CHARS " "][VarSub local][LIT_CHARS " "][VarSub GIT_QUIET test_op=VS_TEST_COLON_PLUS {[LIT_CHARS -q]}][LIT_CHARS " "][VarSub no_reuse][VarSub extra]]})]) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('names', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} 0)]{[LIT_CHARS git]} {[LIT_CHARS pack-objects]} {[LIT_CHARS --keep-true-parents]} {[LIT_CHARS --honor-pack-keep]} {[LIT_CHARS --non-empty]} {[LIT_CHARS --all]} {[LIT_CHARS --reflog]} {[VarSub args]} {[DQ [VarSub PACKTMP]]})]})]) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub names]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS say]} {[LIT_CHARS Nothing]} {[LIT_CHARS new]} {[LIT_CHARS to]} {[LIT_CHARS pack.]} ) ) (= scope= flags=0 words=[] bindings=[('rollback', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('failed', {[SQ ]})]) (For name [{[VarSub names]}]) (List (For sfx [{[LIT_CHARS pack]}, {[LIT_CHARS idx]}]) (List (= scope= flags=0 words=[] bindings=[('file', {[LIT_CHARS pack-] [VarSub name] [LIT_CHARS .] [VarSub sfx]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub PACKDIR][LIT_CHARS /][VarSub file]]} ) (Com {[LIT_CHARS continue]} ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub PACKDIR][LIT_CHARS /old-][VarSub file]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS mv]} {[DQ [VarSub PACKDIR][LIT_CHARS /][VarSub file]]} {[DQ [VarSub PACKDIR][LIT_CHARS /old-][VarSub file]]} ) (List (= scope= flags=0 words=[] bindings=[('failed', {[LIT_CHARS t]})]) (Com {[LIT_CHARS break]} ) ) ) ) (= scope= flags=0 words=[] bindings=[('rollback', {[DQ [VarSub rollback][LIT_CHARS " "][VarSub file]]})]) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub failed]]} ) (Com {[LIT_CHARS break]} ) ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub failed]]} ) (List (= scope= flags=0 words=[] bindings=[('rollback_failure', {[SQ ]})]) (For file [{[VarSub rollback]}]) (AndOr OP_OR_IF (Com {[LIT_CHARS mv]} {[DQ [VarSub PACKDIR][LIT_CHARS /old-][VarSub file]]} {[DQ [VarSub PACKDIR][LIT_CHARS /][VarSub file]]} ) (= scope= flags=0 words=[] bindings=[('rollback_failure', {[DQ [VarSub rollback_failure][LIT_CHARS " "][VarSub file]]})]) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub rollback_failure]]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: Some packs in use have been renamed by"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: prefixing old- to their name, in order to"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: replace them with the new version of the"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: file. But the operation failed, and"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: attempt to rename them back to their"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: original names also failed."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: Please rename them in "][VarSub PACKDIR][LIT_CHARS " manually:"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (For file [{[VarSub rollback_failure]}]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: old-"][VarSub file][LIT_CHARS " -> "][VarSub file]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('fullbases', {[SQ ]})]) (For name [{[VarSub names]}]) (List (= scope= flags=0 words=[] bindings=[('fullbases', {[DQ [VarSub fullbases][LIT_CHARS " pack-"][VarSub name]]})]) (Com {[LIT_CHARS chmod]} {[LIT_CHARS a-w]} {[DQ [VarSub PACKTMP][LIT_CHARS -][VarSub name][LIT_CHARS .pack]]} ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS a-w]} {[DQ [VarSub PACKTMP][LIT_CHARS -][VarSub name][LIT_CHARS .idx]]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS mv]} {[LIT_CHARS -f]} {[DQ [VarSub PACKTMP][LIT_CHARS -][VarSub name][LIT_CHARS .pack]]} {[DQ [VarSub PACKDIR][LIT_CHARS /pack-][VarSub name][LIT_CHARS .pack]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS mv]} {[LIT_CHARS -f]} {[DQ [VarSub PACKTMP][LIT_CHARS -][VarSub name][LIT_CHARS .idx]]} {[DQ [VarSub PACKDIR][LIT_CHARS /pack-][VarSub name][LIT_CHARS .idx]]} ) (Com {[LIT_CHARS exit]} ) ) ) ) ) (For name [{[VarSub names]}]) (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub PACKDIR][LIT_CHARS /old-pack-][VarSub name][LIT_CHARS .idx]]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub PACKDIR][LIT_CHARS /old-pack-][VarSub name][LIT_CHARS .pack]]} ) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub remove_redundant]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS t]} ) (List (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub existing]]} {[LIT_DBRACKET_LIKE "]"]} ) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub PACKDIR]]} ) (For e [{[VarSub existing]}]) (Case to_match={[DQ [LIT_CHARS " "][VarSub fullbases][LIT_CHARS " "]]}, pat_word_list=[[{[LIT_OTHER "*"] [DQ [LIT_CHARS " "][VarSub e][LIT_CHARS " "]] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub e][LIT_CHARS .pack]]} {[DQ [VarSub e][LIT_CHARS .idx]]} {[DQ [VarSub e][LIT_CHARS .keep]]} ) ) ) ) ) ) (Com {[LIT_CHARS git]} {[LIT_CHARS prune-packed]} {[VarSub GIT_QUIET test_op=VS_TEST_COLON_PLUS {[LIT_CHARS -q]}]} ) ) ) (Case to_match={[DQ [VarSub no_update_info]]}, pat_word_list=[[{[LIT_CHARS t]}], [{[LIT_OTHER "*"]}]] (Com {[LIT_OTHER ":"]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS update-server-info]} ) ) )