]> git.ipfire.org Git - thirdparty/git.git/commit - repo-settings.c
pack-objects: enable multi-pack reuse via `feature.experimental`
authorTaylor Blau <me@ttaylorr.com>
Mon, 5 Feb 2024 22:50:23 +0000 (17:50 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 5 Feb 2024 23:27:01 +0000 (15:27 -0800)
commit23c1e71369f4a5a5e5b176d77cfc9d8edf68ebec
treec607a3e02c92357e7ed9f6bd2f5f70e726ed0061
parent7c01878eeb15e8dd75f0262bdfb3249c85a30a4a
pack-objects: enable multi-pack reuse via `feature.experimental`

Now that multi-pack reuse is supported, enable it via the
feature.experimental configuration in addition to the classic
`pack.allowPackReuse`.

This will allow more users to experiment with the new behavior who might
not otherwise be aware of the existing `pack.allowPackReuse`
configuration option.

The enum with values NO_PACK_REUSE, SINGLE_PACK_REUSE, and
MULTI_PACK_REUSE is defined statically in builtin/pack-objects.c's
compilation unit. We could hoist that enum into a scope visible from the
repository_settings struct, and then use that enum value in
pack-objects. Instead, define a single int that indicates what
pack-objects's default value should be to avoid additional unnecessary
code movement.

Though `feature.experimental` implies `pack.allowPackReuse=multi`, this
can still be overridden by explicitly setting the latter configuration
to either "single" or "false". Tests covering all of these cases are
showin t5332.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config/feature.txt
builtin/pack-objects.c
repo-settings.c
repository.h
t/t5332-multi-pack-reuse.sh