pack-objects: allow setting pack.allowPackReuse to "single"
In e704fc7978 (pack-objects: introduce pack.allowPackReuse, 2019-12-18),
the `pack.allowPackReuse` configuration option was introduced, allowing
users to disable the pack reuse mechanism.
To prepare for debugging multi-pack reuse, allow setting configuration
to "single" in addition to the usual bool-or-int values.
"single" implies the same behavior as "true", "1", "yes", and so on. But
it will complement a new "multi" value (to be introduced in a future
commit). When set to "single", we will only perform pack reuse on a
single pack, regardless of whether or not there are multiple MIDX'd
packs.
This requires no code changes (yet), since we only support single pack
reuse.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
3bea0c0611
commit
941074134c
@@ -229,7 +229,10 @@ static struct bitmap *reuse_packfile_bitmap;
|
||||
|
||||
static int use_bitmap_index_default = 1;
|
||||
static int use_bitmap_index = -1;
|
||||
static int allow_pack_reuse = 1;
|
||||
static enum {
|
||||
NO_PACK_REUSE = 0,
|
||||
SINGLE_PACK_REUSE,
|
||||
} allow_pack_reuse = SINGLE_PACK_REUSE;
|
||||
static enum {
|
||||
WRITE_BITMAP_FALSE = 0,
|
||||
WRITE_BITMAP_QUIET,
|
||||
@@ -3244,7 +3247,17 @@ static int git_pack_config(const char *k, const char *v,
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(k, "pack.allowpackreuse")) {
|
||||
allow_pack_reuse = git_config_bool(k, v);
|
||||
int res = git_parse_maybe_bool_text(v);
|
||||
if (res < 0) {
|
||||
if (!strcasecmp(v, "single"))
|
||||
allow_pack_reuse = SINGLE_PACK_REUSE;
|
||||
else
|
||||
die(_("invalid pack.allowPackReuse value: '%s'"), v);
|
||||
} else if (res) {
|
||||
allow_pack_reuse = SINGLE_PACK_REUSE;
|
||||
} else {
|
||||
allow_pack_reuse = NO_PACK_REUSE;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(k, "pack.threads")) {
|
||||
@@ -3999,7 +4012,7 @@ static void loosen_unused_packed_objects(void)
|
||||
*/
|
||||
static int pack_options_allow_reuse(void)
|
||||
{
|
||||
return allow_pack_reuse &&
|
||||
return allow_pack_reuse != NO_PACK_REUSE &&
|
||||
pack_to_stdout &&
|
||||
!ignore_packed_keep_on_disk &&
|
||||
!ignore_packed_keep_in_core &&
|
||||
|
||||
Reference in New Issue
Block a user