Code

Make 'unpack_trees()' have a separate source and destination index
[git.git] / unpack-trees.h
index 5517faafad6ca3f327c81ab6e8e5f2701ff0ad14..e8abbcd037167a58c816d94f4f0c617d6572d23d 100644 (file)
@@ -4,8 +4,7 @@
 struct unpack_trees_options;
 
 typedef int (*merge_fn_t)(struct cache_entry **src,
-               struct unpack_trees_options *options,
-               int remove);
+               struct unpack_trees_options *options);
 
 struct unpack_trees_options {
        int reset;
@@ -16,6 +15,8 @@ struct unpack_trees_options {
        int trivial_merges_only;
        int verbose_update;
        int aggressive;
+       int skip_unmerged;
+       int gently;
        const char *prefix;
        int pos;
        struct dir_struct *dir;
@@ -25,14 +26,19 @@ struct unpack_trees_options {
        int merge_size;
 
        struct cache_entry *df_conflict_entry;
+       void *unpack_data;
+
+       struct index_state *dst_index;
+       const struct index_state *src_index;
+       struct index_state result;
 };
 
 extern int unpack_trees(unsigned n, struct tree_desc *t,
                struct unpack_trees_options *options);
 
-int threeway_merge(struct cache_entry **stages, struct unpack_trees_options *o, int);
-int twoway_merge(struct cache_entry **src, struct unpack_trees_options *o, int);
-int bind_merge(struct cache_entry **src, struct unpack_trees_options *o, int);
-int oneway_merge(struct cache_entry **src, struct unpack_trees_options *o, int);
+int threeway_merge(struct cache_entry **stages, struct unpack_trees_options *o);
+int twoway_merge(struct cache_entry **src, struct unpack_trees_options *o);
+int bind_merge(struct cache_entry **src, struct unpack_trees_options *o);
+int oneway_merge(struct cache_entry **src, struct unpack_trees_options *o);
 
 #endif