]> git.ipfire.org Git - thirdparty/git.git/blobdiff - merge-recursive.h
Merge branch 'bw/format-patch-o-create-leading-dirs'
[thirdparty/git.git] / merge-recursive.h
index 9e040608fec98e09ac8fa01abc58ed724125735a..978847e6724805ccab3fb85015f51677b045da62 100644 (file)
@@ -1,13 +1,15 @@
 #ifndef MERGE_RECURSIVE_H
 #define MERGE_RECURSIVE_H
 
-#include "string-list.h"
-#include "unpack-trees.h"
+#include "strbuf.h"
 
 struct commit;
-
+struct commit_list;
+struct object_id;
 struct repository;
+struct tree;
 
+struct merge_options_internal;
 struct merge_options {
        struct repository *repo;
 
@@ -30,27 +32,23 @@ struct merge_options {
        /* xdiff-related options (patience, ignore whitespace, ours/theirs) */
        long xdl_opts;
        enum {
-               MERGE_RECURSIVE_NORMAL = 0,
-               MERGE_RECURSIVE_OURS,
-               MERGE_RECURSIVE_THEIRS
+               MERGE_VARIANT_NORMAL = 0,
+               MERGE_VARIANT_OURS,
+               MERGE_VARIANT_THEIRS
        } recursive_variant;
 
        /* console output related options */
        int verbosity;
        unsigned buffer_output; /* 1: output at end, 2: keep buffered */
-       struct strbuf obuf;     /* output buffer */
+       struct strbuf obuf;     /* output buffer; if buffer_output == 2, caller
+                                * must handle and call strbuf_release */
 
        /* miscellaneous control options */
        const char *subtree_shift;
        unsigned renormalize : 1;
 
-       /* internal fields used by the implementation (do NOT set these) */
-       int call_depth;
-       int needed_rename_limit;
-       struct hashmap current_file_dir_set;
-       struct string_list df_conflict_file_set;
-       struct unpack_trees_options unpack_opts;
-       struct index_state orig_index;
+       /* internal fields used by the implementation */
+       struct merge_options_internal *priv;
 };
 
 void init_merge_options(struct merge_options *opt, struct repository *repo);