split-index.h 1.2 KB

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