Code

Make 'unpack_trees()' have a separate source and destination index
[git.git] / unpack-trees.h
index 65add1652f77978e0e0aee4924b583aefa9978ce..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;
@@ -28,15 +27,18 @@ struct unpack_trees_options {
 
        struct cache_entry *df_conflict_entry;
        void *unpack_data;
-       struct index_state *index;
+
+       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