receive-pack: allow using --strict mode for unpacking objects
[gitweb.git] / unpack-trees.h
index 191f7442f10683c8043288eece36f39166fedc95..a2df544d040adc21f7d854ad50c53e61cf74c9ae 100644 (file)
@@ -4,7 +4,8 @@
 struct unpack_trees_options;
 
 typedef int (*merge_fn_t)(struct cache_entry **src,
-               struct unpack_trees_options *options);
+               struct unpack_trees_options *options,
+               int remove);
 
 struct unpack_trees_options {
        int reset;
@@ -15,7 +16,10 @@ 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;
        merge_fn_t fn;
 
@@ -23,14 +27,15 @@ struct unpack_trees_options {
        int merge_size;
 
        struct cache_entry *df_conflict_entry;
+       void *unpack_data;
 };
 
-extern int unpack_trees(struct object_list *trees,
+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 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);
+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);
 
 #endif