diff options
author | Derrick Stolee <derrickstolee@github.com> | 2023-01-06 16:31:56 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-01-07 07:46:14 +0900 |
commit | 17194b195d5db1cfd19af57e817c29bd3fa75c02 (patch) | |
tree | 848d5f854a3150f031fdb5d3b98466da09aaac8c /repo-settings.c | |
parent | da9acde14ed4ea621b5db844630c1f620f24e110 (diff) | |
download | git-17194b195d5db1cfd19af57e817c29bd3fa75c02.tar.gz |
features: feature.manyFiles implies fast index writes
The recent addition of the index.skipHash config option allows index
writes to speed up by skipping the hash computation for the trailing
checksum. This is particularly critical for repositories with many files
at HEAD, so add this config option to two cases where users in that
scenario may opt-in to such behavior:
1. The feature.manyFiles config option enables some options that are
helpful for repositories with many files at HEAD.
2. 'scalar register' and 'scalar reconfigure' set config options that
optimize for large repositories.
In both of these cases, set index.skipHash=true to gain this
speedup. Add tests that demonstrate the proper way that
index.skipHash=true can override feature.manyFiles=true.
Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'repo-settings.c')
-rw-r--r-- | repo-settings.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/repo-settings.c b/repo-settings.c index 3021921c53..3dbd3f0e2e 100644 --- a/repo-settings.c +++ b/repo-settings.c @@ -47,6 +47,7 @@ void prepare_repo_settings(struct repository *r) } if (manyfiles) { r->settings.index_version = 4; + r->settings.index_skip_hash = 1; r->settings.core_untracked_cache = UNTRACKED_CACHE_WRITE; } @@ -61,6 +62,7 @@ void prepare_repo_settings(struct repository *r) repo_cfg_bool(r, "pack.usesparse", &r->settings.pack_use_sparse, 1); repo_cfg_bool(r, "core.multipackindex", &r->settings.core_multi_pack_index, 1); repo_cfg_bool(r, "index.sparse", &r->settings.sparse_index, 0); + repo_cfg_bool(r, "index.skiphash", &r->settings.index_skip_hash, r->settings.index_skip_hash); /* * The GIT_TEST_MULTI_PACK_INDEX variable is special in that |