]> git.ipfire.org Git - thirdparty/git.git/blobdiff - merge-recursive.h
Merge branch 'wb/fsmonitor-bitmap-fix'
[thirdparty/git.git] / merge-recursive.h
index f4bdfbc897a3fd3ed3b7ece0444bc76e2a2cf674..978847e6724805ccab3fb85015f51677b045da62 100644 (file)
@@ -1,44 +1,54 @@
 #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;
+
+       /* ref names used in console messages and conflict markers */
        const char *ancestor;
        const char *branch1;
        const char *branch2;
-       enum {
-               MERGE_RECURSIVE_NORMAL = 0,
-               MERGE_RECURSIVE_OURS,
-               MERGE_RECURSIVE_THEIRS
-       } recursive_variant;
-       const char *subtree_shift;
-       unsigned buffer_output; /* 1: output at end, 2: keep buffered */
-       unsigned renormalize : 1;
-       long xdl_opts;
-       int verbosity;
+
+       /* rename related options */
+       int detect_renames;
        enum {
                MERGE_DIRECTORY_RENAMES_NONE = 0,
                MERGE_DIRECTORY_RENAMES_CONFLICT = 1,
                MERGE_DIRECTORY_RENAMES_TRUE = 2
        } detect_directory_renames;
-       int detect_renames;
        int rename_limit;
        int rename_score;
-       int needed_rename_limit;
        int show_rename_progress;
-       int call_depth;
-       struct strbuf obuf;
-       struct hashmap current_file_dir_set;
-       struct string_list df_conflict_file_set;
-       struct unpack_trees_options unpack_opts;
-       struct index_state orig_index;
-       struct repository *repo;
+
+       /* xdiff-related options (patience, ignore whitespace, ours/theirs) */
+       long xdl_opts;
+       enum {
+               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; 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 */
+       struct merge_options_internal *priv;
 };
 
 void init_merge_options(struct merge_options *opt, struct repository *repo);