diff options
| author | Junio C Hamano <gitster@pobox.com> | 2010-01-30 16:03:10 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2010-01-30 16:03:10 -0800 |
| commit | 00d3278c8534a8244ae3447189401111e017fd5d (patch) | |
| tree | f1c19903bc10ffe4816642040080fb6cfd5da376 /merge-recursive.h | |
| parent | b9b727ddb3c9e005bc4e9af0b990b6ef06d7f621 (diff) | |
| parent | b319ef70a94731a5c6f18d07a49d5dda3f06f5d3 (diff) | |
Merge commit 'b319ef7' into jc/maint-fix-test-perm
* commit 'b319ef7': (8132 commits)
Add a small patch-mode testing library
git-apply--interactive: Refactor patch mode code
t8005: Nobody writes Russian in shift_jis
Fix severe breakage in "git-apply --whitespace=fix"
Update release notes for 1.6.4
After renaming a section, print any trailing variable definitions
Make section_name_match start on '[', and return the length on success
send-email: detect cycles in alias expansion
Show the presence of untracked files in the bash prompt.
SunOS grep does not understand -C<n> nor -e
Fix export_marks() error handling.
git repack: keep commits hidden by a graft
Add a test showing that 'git repack' throws away grafted-away parents
git branch: clean up detached branch handling
git branch: avoid unnecessary object lookups
git branch: fix performance problem
git svn: fix shallow clone when upstream revision is too new
do_one_ref(): null_sha1 check is not about broken ref
configure.ac: properly unset NEEDS_SSL_WITH_CRYPTO when sha1 func is missing
janitor: useless checks before free
...
Diffstat (limited to 'merge-recursive.h')
| -rw-r--r-- | merge-recursive.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/merge-recursive.h b/merge-recursive.h new file mode 100644 index 0000000000..fd138ca140 --- /dev/null +++ b/merge-recursive.h @@ -0,0 +1,48 @@ +#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; + 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; +}; + +/* merge_trees() but with recursive ancestor consolidation */ +int merge_recursive(struct merge_options *o, + struct commit *h1, + struct commit *h2, + struct commit_list *ancestors, + struct commit **result); + +/* rename-detecting three-way merge, no recursion */ +int merge_trees(struct merge_options *o, + struct tree *head, + struct tree *merge, + struct tree *common, + struct tree **result); + +/* + * "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 |
