diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-12-18 00:27:59 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-12-18 00:28:16 -0800 |
commit | 03f94ae9f909952ed5a78917ab319a312889354b (patch) | |
tree | 0fd041e8b390bd0d2a960ae629d8e965d363de92 /merge-recursive.h | |
parent | 2c47789d817aaf745a5ce5d5f79619c634cc8566 (diff) | |
parent | 81b50f3ce40bfdd66e5d967bf82be001039a9a98 (diff) | |
download | git-jk/maint-strbuf-missing-init.tar.gz |
Update jk/maint-strbuf-missing-init to builtin/ renamejk/maint-strbuf-missing-init
Diffstat (limited to 'merge-recursive.h')
-rw-r--r-- | merge-recursive.h | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/merge-recursive.h b/merge-recursive.h index f37630a8ad..be8410ad18 100644 --- a/merge-recursive.h +++ b/merge-recursive.h @@ -1,20 +1,56 @@ #ifndef MERGE_RECURSIVE_H #define MERGE_RECURSIVE_H -int merge_recursive(struct commit *h1, +#include "string-list.h" + +struct merge_options { + 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; + 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, struct commit *h2, - const char *branch1, - const char *branch2, struct commit_list *ancestors, struct commit **result); -int merge_trees(struct tree *head, +/* rename-detecting three-way merge, no recursion */ +int merge_trees(struct merge_options *o, + struct tree *head, struct tree *merge, struct tree *common, - const char *branch1, - const char *branch2, struct tree **result); -struct tree *write_tree_from_memory(void); +/* + * "git-merge-recursive" can be fed trees; wrap them into + * virtual commits and call merge_recursive() proper. + */ +int merge_recursive_generic(struct merge_options *o, + const unsigned char *head, + const unsigned char *merge, + int num_ca, + const unsigned char **ca, + struct commit **result); + +void init_merge_options(struct merge_options *o); +struct tree *write_tree_from_memory(struct merge_options *o); #endif |