add tests of commit --squash
[gitweb.git] / merge-recursive.h
index d8bc7299ee3a70484b2436afd3799fe6f7608422..34492dbd6ea22d715c98acbeeabe04033ff9a794 100644 (file)
@@ -4,10 +4,17 @@
 #include "string-list.h"
 
 struct merge_options {
+       const char *ancestor;
        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;
+       unsigned renormalize : 1;
        int verbosity;
        int diff_rename_limit;
        int merge_rename_limit;
@@ -17,9 +24,6 @@ struct merge_options {
        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,
@@ -48,4 +52,7 @@ int merge_recursive_generic(struct merge_options *o,
 void init_merge_options(struct merge_options *o);
 struct tree *write_tree_from_memory(struct merge_options *o);
 
+/* builtin/merge.c */
+int try_merge_command(const char *strategy, struct commit_list *common, const char *head_arg, struct commit_list *remotes);
+
 #endif