diff options
author | Vicent Marti <vicent@github.com> | 2014-01-20 16:26:04 -0800 |
---|---|---|
committer | Vicent Marti <vicent@github.com> | 2014-01-20 16:26:04 -0800 |
commit | af2b969b6f63dafa8c55b88cadbcc7631c2dd30b (patch) | |
tree | e55254b0dc5473e95227a189d8b37d1450a7c26a /src/merge_file.c | |
parent | e49c98e6efaa444ed73ac3b8318a693801f93184 (diff) | |
parent | 0ef19fe14ce5a5f7b5ac90966a56997bf04ea5a9 (diff) | |
download | libgit2-af2b969b6f63dafa8c55b88cadbcc7631c2dd30b.tar.gz |
Merge pull request #2061 from ethomson/merge_improvements
Merge improvements
Diffstat (limited to 'src/merge_file.c')
-rw-r--r-- | src/merge_file.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/merge_file.c b/src/merge_file.c index 48fc46e57..9961ef297 100644 --- a/src/merge_file.c +++ b/src/merge_file.c @@ -130,7 +130,7 @@ int git_merge_files( git_merge_file_input *ancestor, git_merge_file_input *ours, git_merge_file_input *theirs, - git_merge_automerge_flags flags) + git_merge_file_options *opts) { xmparam_t xmparam; mmbuffer_t mmbuffer; @@ -152,11 +152,19 @@ int git_merge_files( out->path = merge_file_best_path(ancestor, ours, theirs); out->mode = merge_file_best_mode(ancestor, ours, theirs); - if (flags == GIT_MERGE_AUTOMERGE_FAVOR_OURS) + if (opts && opts->favor == GIT_MERGE_FILE_FAVOR_OURS) xmparam.favor = XDL_MERGE_FAVOR_OURS; - - if (flags == GIT_MERGE_AUTOMERGE_FAVOR_THEIRS) + else if (opts && opts->favor == GIT_MERGE_FILE_FAVOR_THEIRS) xmparam.favor = XDL_MERGE_FAVOR_THEIRS; + else if (opts && opts->favor == GIT_MERGE_FILE_FAVOR_UNION) + xmparam.favor = XDL_MERGE_FAVOR_UNION; + + xmparam.level = + (opts && (opts->flags & GIT_MERGE_FILE_SIMPLIFY_ALNUM)) ? + XDL_MERGE_ZEALOUS_ALNUM : XDL_MERGE_ZEALOUS; + + if (opts && opts->style == GIT_MERGE_FILE_STYLE_DIFF3) + xmparam.style = XDL_MERGE_DIFF3; if ((xdl_result = xdl_merge(&ancestor->mmfile, &ours->mmfile, &theirs->mmfile, &xmparam, &mmbuffer)) < 0) { |