On Sat, Jun 24, 2023 at 10:33:47AM -0400, Taylor Blau wrote: > In 4dc16e2cb0 (gc: introduce `gc.recentObjectsHook`, 2023-06-07), we > added tests to ensure that prune-able (i.e. unreachable and with mtime > older than the cutoff) objects which are marked as recent via the new > `gc.recentObjectsHook` configuration are unpacked as loose with > `--unpack-unreachable`. > > In that test, we also ensure that objects which are reachable from other > unreachable objects which were *not* pruned are kept as well, regardless > of their mtimes. For this, we use an annotated tag pointing at a blob > ($obj2) which would otherwise be pruned. > > But after pruning, that object is kept around for two reasons. One, the > tag object's mtime wasn't adjusted to be beyond the 1-hour cutoff, so it > would be kept as due to its recency regardless. The other reason is > because the tag itself is reachable. > > Use mktag to write the tag object directly without pointing a reference > at it, and adjust the mtime of the tag object to be older than the > cutoff to ensure that our `gc.recentObjectsHook` configuration is > working as intended. > > Noticed-by: Jeff King <peff@xxxxxxxx> > Signed-off-by: Taylor Blau <me@xxxxxxxxxxxx> > --- > Fixes a trivial oversight from an earlier version of this patch noticed > by Peff. Thanks, this looks great to me. -Peff