split-index.hon commit Merge branch 'vv/merge-squash-with-explicit-commit' into maint (33f2790)
   1#ifndef SPLIT_INDEX_H
   2#define SPLIT_INDEX_H
   3
   4#include "cache.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