summaryrefslogtreecommitdiff
path: root/repo-settings.c
diff options
context:
space:
mode:
authorDerrick Stolee <dstolee@microsoft.com>2020-09-25 12:33:34 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-09-25 17:53:04 (GMT)
commit18e449f86b74bab35b150549c8342d252fe7ae00 (patch)
tree2314bce0c061b1087752317080040b0a49af3dd3 /repo-settings.c
parent3e220e60696ebc27c719b83adc6f734d6857521f (diff)
downloadgit-18e449f86b74bab35b150549c8342d252fe7ae00.zip
git-18e449f86b74bab35b150549c8342d252fe7ae00.tar.gz
git-18e449f86b74bab35b150549c8342d252fe7ae00.tar.bz2
midx: enable core.multiPackIndex by default
The core.multiPackIndex setting has been around since c4d25228ebb (config: create core.multiPackIndex setting, 2018-07-12), but has been disabled by default. If a user wishes to use the multi-pack-index feature, then they must enable this config and run 'git multi-pack-index write'. The multi-pack-index feature is relatively stable now, so make the config option true by default. For users that do not use a multi-pack-index, the only extra cost will be a file lookup to see if a multi-pack-index file exists (once per process, per object directory). Also, this config option will be referenced by an upcoming "incremental-repack" task in the maintenance builtin, so move the config option into the repository settings struct. Note that if GIT_TEST_MULTI_PACK_INDEX=1, then we want to ignore the config option and treat core.multiPackIndex as enabled. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'repo-settings.c')
-rw-r--r--repo-settings.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/repo-settings.c b/repo-settings.c
index 0918408..5bd2c22 100644
--- a/repo-settings.c
+++ b/repo-settings.c
@@ -1,6 +1,7 @@
#include "cache.h"
#include "config.h"
#include "repository.h"
+#include "midx.h"
#define UPDATE_DEFAULT_BOOL(s,v) do { if (s == -1) { s = v; } } while(0)
@@ -47,6 +48,11 @@ void prepare_repo_settings(struct repository *r)
r->settings.pack_use_sparse = value;
UPDATE_DEFAULT_BOOL(r->settings.pack_use_sparse, 1);
+ value = git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0);
+ if (value || !repo_config_get_bool(r, "core.multipackindex", &value))
+ r->settings.core_multi_pack_index = value;
+ UPDATE_DEFAULT_BOOL(r->settings.core_multi_pack_index, 1);
+
if (!repo_config_get_bool(r, "feature.manyfiles", &value) && value) {
UPDATE_DEFAULT_BOOL(r->settings.index_version, 4);
UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_WRITE);