"sparse-checkout" learns to work well with the sparse-index feature. * ds/sparse-sparse-checkout: sparse-checkout: integrate with sparse index p2000: add test for 'git sparse-checkout [add|set]' sparse-index: complete partial expansion sparse-index: partially expand directories sparse-checkout: --no-sparse-index needs a full index cache-tree: implement cache_tree_find_path() sparse-index: introduce partially-sparse indexes sparse-index: create expand_index() t1092: stress test 'git sparse-checkout set' t1092: refactor 'sparse-index contents' test
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef SPARSE_INDEX_H__
 | 
						|
#define SPARSE_INDEX_H__
 | 
						|
 | 
						|
struct index_state;
 | 
						|
#define SPARSE_INDEX_MEMORY_ONLY (1 << 0)
 | 
						|
int is_sparse_index_allowed(struct index_state *istate, int flags);
 | 
						|
int convert_to_sparse(struct index_state *istate, int flags);
 | 
						|
void ensure_correct_sparsity(struct index_state *istate);
 | 
						|
void clear_skip_worktree_from_present_files(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);
 | 
						|
 | 
						|
struct pattern_list;
 | 
						|
 | 
						|
/**
 | 
						|
 * Scan the given index and compare its entries to the given pattern list.
 | 
						|
 * If the index is sparse and the pattern list uses cone mode patterns,
 | 
						|
 * then modify the index to contain the all of the file entries within that
 | 
						|
 * new pattern list. This expands sparse directories only as far as needed.
 | 
						|
 *
 | 
						|
 * If the pattern list is NULL or does not use cone mode patterns, then the
 | 
						|
 * index is expanded to a full index.
 | 
						|
 */
 | 
						|
void expand_index(struct index_state *istate, struct pattern_list *pl);
 | 
						|
 | 
						|
#endif
 |