summaryrefslogtreecommitdiff
path: root/src/merge_file.h
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@microsoft.com>2014-01-08 18:29:42 -0800
committerEdward Thomson <ethomson@microsoft.com>2014-01-20 17:15:11 -0500
commitc1d648c5c6361edfb1aa85a31656b628672c7616 (patch)
treef611ff05206f2305c82867514f1e7f22b602c7b7 /src/merge_file.h
parente49c98e6efaa444ed73ac3b8318a693801f93184 (diff)
downloadlibgit2-c1d648c5c6361edfb1aa85a31656b628672c7616.tar.gz
merge_file should use more aggressive levels
The default merge_file level was XDL_MERGE_MINIMAL, which will produce conflicts where there should not be in the case where both sides were changed identically. Change the defaults to be more aggressive (XDL_MERGE_ZEALOUS) which will more aggressively compress non-conflicts. This matches git.git's defaults. Increase testing around reverting a previously reverted commit to illustrate this problem.
Diffstat (limited to 'src/merge_file.h')
-rw-r--r--src/merge_file.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/merge_file.h b/src/merge_file.h
index 0af2f0a57..5d7ea9752 100644
--- a/src/merge_file.h
+++ b/src/merge_file.h
@@ -34,6 +34,18 @@ typedef struct {
#define GIT_MERGE_FILE_RESULT_INIT {0}
+typedef enum {
+ /* Condense non-alphanumeric regions for simplified diff file */
+ GIT_MERGE_FILE_SIMPLIFY_ALNUM = (1 << 0),
+} git_merge_file_flags_t;
+
+typedef struct {
+ git_merge_file_favor_t favor;
+ git_merge_file_flags_t flags;
+} git_merge_file_options;
+
+#define GIT_MERGE_FILE_OPTIONS_INIT {0}
+
int git_merge_file_input_from_index_entry(
git_merge_file_input *input,
git_repository *repo,
@@ -49,7 +61,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);
GIT_INLINE(void) git_merge_file_input_free(git_merge_file_input *input)
{