t554[01]-http-push: refactor, add non-ff tests
[gitweb.git] / merge-recursive.h
index be84d9bb32d4bf9e39e7bf2cf42f17383cb8fc5c..be8410ad1803bc10e5dbf74f39eecdfed53469b1 100644 (file)
@@ -1,18 +1,30 @@
 #ifndef MERGE_RECURSIVE_H
 #define MERGE_RECURSIVE_H
 
+#include "string-list.h"
+
 struct merge_options {
        const char *branch1;
        const char *branch2;
-       unsigned subtree_merge : 1;
+       enum {
+               MERGE_RECURSIVE_NORMAL = 0,
+               MERGE_RECURSIVE_OURS,
+               MERGE_RECURSIVE_THEIRS,
+       } recursive_variant;
+       const char *subtree_shift;
        unsigned buffer_output : 1;
        int verbosity;
        int diff_rename_limit;
        int merge_rename_limit;
        int call_depth;
        struct strbuf obuf;
+       struct string_list current_file_set;
+       struct string_list current_directory_set;
 };
 
+/* Return a list of user-friendly error messages to be used by merge */
+struct unpack_trees_error_msgs get_porcelain_error_msgs(void);
+
 /* merge_trees() but with recursive ancestor consolidation */
 int merge_recursive(struct merge_options *o,
                    struct commit *h1,