On Thu, May 26, 2022 at 01:41:25AM -0700, Junio C Hamano wrote: > * tb/cruft-packs (2022-05-25) 18 commits > - sha1-file.c: don't freshen cruft packs > - builtin/gc.c: conditionally avoid pruning objects via loose > - builtin/repack.c: add cruft packs to MIDX during geometric repack > - builtin/repack.c: use named flags for existing_packs > - builtin/repack.c: allow configuring cruft pack generation > - builtin/repack.c: support generating a cruft pack > - builtin/pack-objects.c: --cruft with expiration > - reachable: report precise timestamps from objects in cruft packs > - reachable: add options to add_unseen_recent_objects_to_traversal > - builtin/pack-objects.c: --cruft without expiration > - builtin/pack-objects.c: return from create_object_entry() > - t/helper: add 'pack-mtimes' test-tool > - pack-mtimes: support writing pack .mtimes files > - chunk-format.h: extract oid_version() > - pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles' > - fixup! pack-mtimes: support reading .mtimes files > - pack-mtimes: support reading .mtimes files > - Documentation/technical: add cruft-packs.txt > > A mechanism to pack unreachable objects into a "cruft pack", > instead of ejecting them into loose form to be reclaimed later, has > been introduced. > > Will merge to 'next' after squashing fixup! in??? > source: <cover.1653088640.git.me@xxxxxxxxxxxx> I think this is ready. This topic has been thoroughly reviewed, and the outstanding topics: - user-facing documentation cautioning about mixed-version cruft GCs (similar to what I added in Documentation/technical/cruft-packs.txt in v4) - 64-bit timestamps, if desired Can easily be done on top. The first one is trivial, and I'll send some patches before getting too close to the -rc phase. The latter is more substantial, but isn't a requirement for merging this (and the format is extensible so this could be done on top if there is significant interest). Thanks, Taylor