]> git.ipfire.org Git - thirdparty/git.git/blob - split-index.h
Merge branch 'jk/add-ignore-errors-bit-assignment-fix'
[thirdparty/git.git] / split-index.h
1 #ifndef SPLIT_INDEX_H
2 #define SPLIT_INDEX_H
3
4 #include "cache.h"
5
6 struct index_state;
7 struct strbuf;
8 struct ewah_bitmap;
9
10 struct split_index {
11 struct object_id base_oid;
12 struct index_state *base;
13 struct ewah_bitmap *delete_bitmap;
14 struct ewah_bitmap *replace_bitmap;
15 struct cache_entry **saved_cache;
16 unsigned int saved_cache_nr;
17 unsigned int nr_deletions;
18 unsigned int nr_replacements;
19 int refcount;
20 };
21
22 struct split_index *init_split_index(struct index_state *istate);
23 void save_or_free_index_entry(struct index_state *istate, struct cache_entry *ce);
24 void replace_index_entry_in_base(struct index_state *istate,
25 struct cache_entry *old,
26 struct cache_entry *new_entry);
27 int read_link_extension(struct index_state *istate,
28 const void *data, unsigned long sz);
29 int write_link_extension(struct strbuf *sb,
30 struct index_state *istate);
31 void move_cache_to_base_index(struct index_state *istate);
32 void merge_base_index(struct index_state *istate);
33 void prepare_to_write_split_index(struct index_state *istate);
34 void finish_writing_split_index(struct index_state *istate);
35 void discard_split_index(struct index_state *istate);
36 void add_split_index(struct index_state *istate);
37 void remove_split_index(struct index_state *istate);
38
39 #endif