Files
git/builtin
Taylor Blau 3c1e2c2113 builtin/repack.c: avoid making cruft packs preferred
When doing a `--geometric` repack, we make sure that the preferred pack
(if writing a MIDX) is the largest pack that we *didn't* repack. That
has the effect of keeping the preferred pack in sync with the pack
containing a majority of the repository's reachable objects.

But if the repository happens to double in size, we'll repack
everything. Here we don't specify any `--preferred-pack`, and instead
let the MIDX code choose.

In the past, that worked fine, since there would only be one pack to
choose from: the one we just wrote. But it's no longer necessarily the
case that there is one pack to choose from. It's possible that the
repository also has a cruft pack, too.

If the cruft pack happens to come earlier in lexical order (and has an
earlier mtime than any non-cruft pack), we'll pick that pack as
preferred. This makes it impossible to reuse chunks of the reachable
pack verbatim from pack-objects, so is sub-optimal.

Luckily, this is a somewhat rare circumstance to be in, since we would
have to repack the entire repository during a `--geometric` repack, and
the cruft pack would have to sort ahead of the pack we just created.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-10-05 13:26:11 -07:00
..
2023-09-13 10:07:56 -07:00
2023-09-29 09:04:16 -07:00
2023-10-02 11:20:00 -07:00
2023-07-06 11:54:48 -07:00
2023-07-06 11:54:48 -07:00
2023-07-08 11:23:07 -07:00
2023-09-18 13:53:13 -07:00
2023-07-06 11:54:48 -07:00
2023-07-06 11:54:47 -07:00
2023-07-06 11:54:48 -07:00
2023-07-06 11:54:48 -07:00
2023-07-06 11:54:48 -07:00
2023-07-27 15:26:37 -07:00
2023-07-25 12:05:24 -07:00
2023-06-28 14:06:39 -07:00
2023-09-07 15:06:07 -07:00
2023-07-06 11:54:46 -07:00
2023-07-25 12:05:24 -07:00
2023-09-13 10:07:57 -07:00