Git fork
at reftables-rust 39 lines 1.3 kB view raw
1#ifndef SPLIT_INDEX_H 2#define SPLIT_INDEX_H 3 4#include "hash.h" 5 6struct index_state; 7struct strbuf; 8struct ewah_bitmap; 9 10struct 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 22struct 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, 25 struct cache_entry *old, 26 struct cache_entry *new_entry); 27int read_link_extension(struct index_state *istate, 28 const void *data, unsigned long sz); 29int write_link_extension(struct strbuf *sb, 30 struct 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); 38 39#endif