unpack-trees.hon commit Merge branch 'np/pack' (1fe82d6)
   1#ifndef UNPACK_TREES_H
   2#define UNPACK_TREES_H
   3
   4#define MAX_UNPACK_TREES 8
   5
   6struct unpack_trees_options;
   7
   8typedef int (*merge_fn_t)(struct cache_entry **src,
   9                struct unpack_trees_options *options);
  10
  11struct unpack_trees_options {
  12        unsigned int reset:1,
  13                     merge:1,
  14                     update:1,
  15                     index_only:1,
  16                     nontrivial_merge:1,
  17                     trivial_merges_only:1,
  18                     verbose_update:1,
  19                     aggressive:1,
  20                     skip_unmerged:1,
  21                     gently:1;
  22        const char *prefix;
  23        int pos;
  24        struct dir_struct *dir;
  25        merge_fn_t fn;
  26
  27        int head_idx;
  28        int merge_size;
  29
  30        struct cache_entry *df_conflict_entry;
  31        void *unpack_data;
  32
  33        struct index_state *dst_index;
  34        struct index_state *src_index;
  35        struct index_state result;
  36};
  37
  38extern int unpack_trees(unsigned n, struct tree_desc *t,
  39                struct unpack_trees_options *options);
  40
  41int threeway_merge(struct cache_entry **stages, struct unpack_trees_options *o);
  42int twoway_merge(struct cache_entry **src, struct unpack_trees_options *o);
  43int bind_merge(struct cache_entry **src, struct unpack_trees_options *o);
  44int oneway_merge(struct cache_entry **src, struct unpack_trees_options *o);
  45
  46#endif