diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-04-30 07:50:26 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-04-30 07:50:26 +0300 |
commit | 8e97852919fa422bc5fe57bc7e71826cf2b5224d (patch) | |
tree | 9a19699763f51c205f04fe05f67282c1cccde28b /sparse-index.h | |
parent | d250f903596ee149dffcd65e3794dbd00b62f97e (diff) | |
parent | 4589bca829a2ace58bc98876cccd7dbd2e89f732 (diff) |
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 'sparse-index.h')
-rw-r--r-- | sparse-index.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/sparse-index.h b/sparse-index.h new file mode 100644 index 0000000000..1115a0d7dd --- /dev/null +++ b/sparse-index.h @@ -0,0 +1,23 @@ +#ifndef SPARSE_INDEX_H__ +#define SPARSE_INDEX_H__ + +struct index_state; +int convert_to_sparse(struct index_state *istate); + +/* + * Some places in the codebase expect to search for a specific path. + * This path might be outside of the sparse-checkout definition, in + * which case a sparse-index may not contain a path for that index. + * + * Given an index and a path, check to see if a leading directory for + * 'path' exists in the index as a sparse directory. In that case, + * expand that sparse directory to a full range of cache entries and + * populate the index accordingly. + */ +void expand_to_path(struct index_state *istate, + const char *path, size_t pathlen, int icase); + +struct repository; +int set_sparse_index_config(struct repository *repo, int enable); + +#endif |