let pack-objects do the writing of unreachable objects as loose objects
[gitweb.git] / unpack-trees.h
index 5517faafad6ca3f327c81ab6e8e5f2701ff0ad14..50453ed20f755fea2e7138d7f01300b318f28dce 100644 (file)
@@ -1,11 +1,12 @@
 #ifndef UNPACK_TREES_H
 #define UNPACK_TREES_H
 
+#define MAX_UNPACK_TREES 8
+
 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 +17,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 +28,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