b93fea08d2
The `ensure_correct_sparsity` function is intended to provide a means of aligning the in-core index with the sparsity required by the repository settings and other properties of the index. The function first checks whether a sparse index is allowed (per repository & sparse checkout pattern settings). If the sparse index may be used, the index is converted to sparse; otherwise, it is explicitly expanded with `ensure_full_index`. Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Victoria Dye <vdye@github.com> Reviewed-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
26 lines
884 B
C
26 lines
884 B
C
#ifndef SPARSE_INDEX_H__
|
|
#define SPARSE_INDEX_H__
|
|
|
|
struct index_state;
|
|
#define SPARSE_INDEX_MEMORY_ONLY (1 << 0)
|
|
int convert_to_sparse(struct index_state *istate, int flags);
|
|
void ensure_correct_sparsity(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
|