1#ifndef SPLIT_INDEX_H
2#define SPLIT_INDEX_H
34
#include "cache.h"
56
struct index_state;
7struct strbuf;
8struct ewah_bitmap;
910
struct split_index {
11struct object_id base_oid;
12struct index_state *base;
13struct ewah_bitmap *delete_bitmap;
14struct ewah_bitmap *replace_bitmap;
15struct cache_entry **saved_cache;
16unsigned int saved_cache_nr;
17unsigned int nr_deletions;
18unsigned int nr_replacements;
19int refcount;
20};
2122
struct split_index *init_split_index(struct index_state *istate);
23void save_or_free_index_entry(struct index_state *istate, struct cache_entry *ce);
24void replace_index_entry_in_base(struct index_state *istate,
25struct cache_entry *old,
26struct cache_entry *new_entry);
27int read_link_extension(struct index_state *istate,
28const void *data, unsigned long sz);
29int write_link_extension(struct strbuf *sb,
30struct index_state *istate);
31void move_cache_to_base_index(struct index_state *istate);
32void merge_base_index(struct index_state *istate);
33void prepare_to_write_split_index(struct index_state *istate);
34void finish_writing_split_index(struct index_state *istate);
35void discard_split_index(struct index_state *istate);
36void add_split_index(struct index_state *istate);
37void remove_split_index(struct index_state *istate);
3839
#endif