diff options
author | Taylor Blau <me@ttaylorr.com> | 2023-08-28 22:49:07 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-08-29 18:58:06 (GMT) |
commit | 61568efa95608fdafffe67967a82e88bcd90fade (patch) | |
tree | 388adbd8914663200d9c680738073a58089f3172 /builtin/repack.c | |
parent | e741c078721f8232da769a1100433d96c4393b32 (diff) | |
download | git-61568efa95608fdafffe67967a82e88bcd90fade.zip git-61568efa95608fdafffe67967a82e88bcd90fade.tar.gz git-61568efa95608fdafffe67967a82e88bcd90fade.tar.bz2 |
builtin/pack-objects.c: support `--max-pack-size` with `--cruft`
When pack-objects learned the `--cruft` option back in b757353676
(builtin/pack-objects.c: --cruft without expiration, 2022-05-20), we
explicitly forbade `--cruft` with `--max-pack-size`.
At the time, there was no specific rationale given in the patch for not
supporting the `--max-pack-size` option with `--cruft`. (As best I can
remember, it's because we were trying to push users towards only ever
having a single cruft pack, but I cannot be sure).
However, `--max-pack-size` is flexible enough that it already works with
`--cruft` and can shard unreachable objects across multiple cruft packs,
creating separate ".mtimes" files as appropriate. In fact, the
`--max-pack-size` option worked with `--cruft` as far back as
b757353676!
This is because we overwrite the `written_list`, and pass down the
appropriate length, i.e. the number of objects written in each pack
shard.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/repack.c')
-rw-r--r-- | builtin/repack.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/builtin/repack.c b/builtin/repack.c index 2b43a5b..6943c5b 100644 --- a/builtin/repack.c +++ b/builtin/repack.c @@ -720,7 +720,6 @@ static int write_cruft_pack(const struct pack_objects_args *args, strvec_push(&cmd.args, "--honor-pack-keep"); strvec_push(&cmd.args, "--non-empty"); - strvec_push(&cmd.args, "--max-pack-size=0"); cmd.in = -1; @@ -1048,6 +1047,8 @@ int cmd_repack(int argc, const char **argv, const char *prefix) cruft_po_args.depth = po_args.depth; if (!cruft_po_args.threads) cruft_po_args.threads = po_args.threads; + if (!cruft_po_args.max_pack_size) + cruft_po_args.max_pack_size = po_args.max_pack_size; cruft_po_args.local = po_args.local; cruft_po_args.quiet = po_args.quiet; |