diff options
| author | Junio C Hamano <gitster@pobox.com> | 2021-04-30 13:50:26 +0900 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2021-04-30 13:50:26 +0900 |
| commit | 8e97852919fa422bc5fe57bc7e71826cf2b5224d (patch) | |
| tree | 9a19699763f51c205f04fe05f67282c1cccde28b /repo-settings.c | |
| parent | d250f903596ee149dffcd65e3794dbd00b62f97e (diff) | |
| parent | 4589bca829a2ace58bc98876cccd7dbd2e89f732 (diff) | |
| download | git-8e97852919fa422bc5fe57bc7e71826cf2b5224d.tar.gz | |
Merge branch 'ds/sparse-index-protections'
Builds on top of the sparse-index infrastructure to mark operations
that are not ready to mark with the sparse index, causing them to
fall back on fully-populated index that they always have worked with.
* ds/sparse-index-protections: (47 commits)
name-hash: use expand_to_path()
sparse-index: expand_to_path()
name-hash: don't add directories to name_hash
revision: ensure full index
resolve-undo: ensure full index
read-cache: ensure full index
pathspec: ensure full index
merge-recursive: ensure full index
entry: ensure full index
dir: ensure full index
update-index: ensure full index
stash: ensure full index
rm: ensure full index
merge-index: ensure full index
ls-files: ensure full index
grep: ensure full index
fsck: ensure full index
difftool: ensure full index
commit: ensure full index
checkout: ensure full index
...
Diffstat (limited to 'repo-settings.c')
| -rw-r--r-- | repo-settings.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/repo-settings.c b/repo-settings.c index f7fff0f5ab..0cfe8b787d 100644 --- a/repo-settings.c +++ b/repo-settings.c @@ -77,4 +77,19 @@ void prepare_repo_settings(struct repository *r) UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_KEEP); UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_DEFAULT); + + /* + * This setting guards all index reads to require a full index + * over a sparse index. After suitable guards are placed in the + * codebase around uses of the index, this setting will be + * removed. + */ + r->settings.command_requires_full_index = 1; + + /* + * Initialize this as off. + */ + r->settings.sparse_index = 0; + if (!repo_config_get_bool(r, "index.sparse", &value) && value) + r->settings.sparse_index = 1; } |
