Sync with 'maint'
[git/gitster.git] / split-index.h
blob1a153f47ba348fb3e8c5bdcae9b279cef352f475
1 #ifndef SPLIT_INDEX_H
2 #define SPLIT_INDEX_H
4 #include "hash.h"
6 struct index_state;
7 struct strbuf;
8 struct ewah_bitmap;
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;
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);
39 #endif