blob: 656bd835b25e06c45ea382b174812e501be6e2be [file] [log] [blame]
Derrick Stolee3964fc22021-03-30 13:10:47 +00001#ifndef SPARSE_INDEX_H__
2#define SPARSE_INDEX_H__
3
4struct index_state;
Derrick Stoleece7a9f02021-09-08 01:42:32 +00005#define SPARSE_INDEX_MEMORY_ONLY (1 << 0)
6int convert_to_sparse(struct index_state *istate, int flags);
Victoria Dyeb93fea02021-11-23 00:20:32 +00007void ensure_correct_sparsity(struct index_state *istate);
Derrick Stolee3964fc22021-03-30 13:10:47 +00008
Derrick Stolee71f82d02021-04-12 21:08:16 +00009/*
10 * Some places in the codebase expect to search for a specific path.
11 * This path might be outside of the sparse-checkout definition, in
12 * which case a sparse-index may not contain a path for that index.
13 *
14 * Given an index and a path, check to see if a leading directory for
15 * 'path' exists in the index as a sparse directory. In that case,
16 * expand that sparse directory to a full range of cache entries and
17 * populate the index accordingly.
18 */
19void expand_to_path(struct index_state *istate,
20 const char *path, size_t pathlen, int icase);
21
Derrick Stolee122ba1f2021-03-30 13:11:00 +000022struct repository;
23int set_sparse_index_config(struct repository *repo, int enable);
24
Derrick Stolee3964fc22021-03-30 13:10:47 +000025#endif