Commit 13de9363 by Jacques Germishuys

Collapse whitespace flags into git_merge_file_flags_t

parent f29dde68
...@@ -111,23 +111,6 @@ typedef enum { ...@@ -111,23 +111,6 @@ typedef enum {
} git_merge_file_favor_t; } git_merge_file_favor_t;
/** /**
* Whitespace merging flags
*/
typedef enum {
/** Defaults */
GIT_MERGE_FILE_IGNORE_DEFAULT = 0,
/** Ignore all whitespace */
GIT_MERGE_FILE_IGNORE_WHITESPACE = (1 << 0),
/** Ignore changes in amount of whitespace */
GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE = (1 << 1),
/** Ignore whitespace at end of line */
GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL = (1 << 2),
} git_merge_file_whitespace_t;
/**
* File merging flags * File merging flags
*/ */
typedef enum { typedef enum {
...@@ -142,6 +125,15 @@ typedef enum { ...@@ -142,6 +125,15 @@ typedef enum {
/** Condense non-alphanumeric regions for simplified diff file */ /** Condense non-alphanumeric regions for simplified diff file */
GIT_MERGE_FILE_SIMPLIFY_ALNUM = (1 << 2), GIT_MERGE_FILE_SIMPLIFY_ALNUM = (1 << 2),
/** Ignore all whitespace */
GIT_MERGE_FILE_IGNORE_WHITESPACE = (1 << 3),
/** Ignore changes in amount of whitespace */
GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE = (1 << 4),
/** Ignore whitespace at end of line */
GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL = (1 << 5),
} git_merge_file_flags_t; } git_merge_file_flags_t;
/** /**
...@@ -172,10 +164,7 @@ typedef struct { ...@@ -172,10 +164,7 @@ typedef struct {
git_merge_file_favor_t favor; git_merge_file_favor_t favor;
/** Merge file flags. */ /** Merge file flags. */
git_merge_file_flags_t flags; unsigned int flags;
/** Whitespace merge flags */
unsigned int whitespace_flags;
} git_merge_file_options; } git_merge_file_options;
#define GIT_MERGE_FILE_OPTIONS_VERSION 1 #define GIT_MERGE_FILE_OPTIONS_VERSION 1
...@@ -251,8 +240,7 @@ typedef struct { ...@@ -251,8 +240,7 @@ typedef struct {
/** Flags for handling conflicting content. */ /** Flags for handling conflicting content. */
git_merge_file_favor_t file_favor; git_merge_file_favor_t file_favor;
/** Flags for handling whitespace */ unsigned int file_flags;
unsigned int whitespace_flags;
} git_merge_options; } git_merge_options;
#define GIT_MERGE_OPTIONS_VERSION 1 #define GIT_MERGE_OPTIONS_VERSION 1
......
...@@ -654,7 +654,7 @@ static int merge_conflict_resolve_automerge( ...@@ -654,7 +654,7 @@ static int merge_conflict_resolve_automerge(
git_merge_diff_list *diff_list, git_merge_diff_list *diff_list,
const git_merge_diff *conflict, const git_merge_diff *conflict,
unsigned int merge_file_favor, unsigned int merge_file_favor,
unsigned int whitespace_flags) unsigned int file_flags)
{ {
const git_index_entry *ancestor = NULL, *ours = NULL, *theirs = NULL; const git_index_entry *ancestor = NULL, *ours = NULL, *theirs = NULL;
git_merge_file_options opts = GIT_MERGE_FILE_OPTIONS_INIT; git_merge_file_options opts = GIT_MERGE_FILE_OPTIONS_INIT;
...@@ -709,7 +709,7 @@ static int merge_conflict_resolve_automerge( ...@@ -709,7 +709,7 @@ static int merge_conflict_resolve_automerge(
&conflict->their_entry : NULL; &conflict->their_entry : NULL;
opts.favor = merge_file_favor; opts.favor = merge_file_favor;
opts.whitespace_flags = whitespace_flags; opts.flags = file_flags;
if ((error = git_repository_odb(&odb, diff_list->repo)) < 0 || if ((error = git_repository_odb(&odb, diff_list->repo)) < 0 ||
(error = git_merge_file_from_index(&result, diff_list->repo, ancestor, ours, theirs, &opts)) < 0 || (error = git_merge_file_from_index(&result, diff_list->repo, ancestor, ours, theirs, &opts)) < 0 ||
...@@ -744,7 +744,7 @@ static int merge_conflict_resolve( ...@@ -744,7 +744,7 @@ static int merge_conflict_resolve(
git_merge_diff_list *diff_list, git_merge_diff_list *diff_list,
const git_merge_diff *conflict, const git_merge_diff *conflict,
unsigned int merge_file_favor, unsigned int merge_file_favor,
unsigned int whitespace_flags) unsigned int file_flags)
{ {
int resolved = 0; int resolved = 0;
int error = 0; int error = 0;
...@@ -761,7 +761,7 @@ static int merge_conflict_resolve( ...@@ -761,7 +761,7 @@ static int merge_conflict_resolve(
goto done; goto done;
if (!resolved && (error = merge_conflict_resolve_automerge(&resolved, diff_list, conflict, if (!resolved && (error = merge_conflict_resolve_automerge(&resolved, diff_list, conflict,
merge_file_favor, whitespace_flags)) < 0) merge_file_favor, file_flags)) < 0)
goto done; goto done;
*out = resolved; *out = resolved;
...@@ -1783,7 +1783,7 @@ int git_merge_trees( ...@@ -1783,7 +1783,7 @@ int git_merge_trees(
git_vector_foreach(&changes, i, conflict) { git_vector_foreach(&changes, i, conflict) {
int resolved = 0; int resolved = 0;
if ((error = merge_conflict_resolve(&resolved, diff_list, conflict, opts.file_favor, opts.whitespace_flags)) < 0) if ((error = merge_conflict_resolve(&resolved, diff_list, conflict, opts.file_favor, opts.file_flags)) < 0)
goto done; goto done;
if (!resolved) if (!resolved)
......
...@@ -151,11 +151,11 @@ static int git_merge_file__from_inputs( ...@@ -151,11 +151,11 @@ static int git_merge_file__from_inputs(
if (options.flags & GIT_MERGE_FILE_STYLE_DIFF3) if (options.flags & GIT_MERGE_FILE_STYLE_DIFF3)
xmparam.style = XDL_MERGE_DIFF3; xmparam.style = XDL_MERGE_DIFF3;
if (options.whitespace_flags & GIT_MERGE_FILE_IGNORE_WHITESPACE) if (options.flags & GIT_MERGE_FILE_IGNORE_WHITESPACE)
xmparam.xpp.flags |= XDF_IGNORE_WHITESPACE; xmparam.xpp.flags |= XDF_IGNORE_WHITESPACE;
if (options.whitespace_flags & GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE) if (options.flags & GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE)
xmparam.xpp.flags |= XDF_IGNORE_WHITESPACE_CHANGE; xmparam.xpp.flags |= XDF_IGNORE_WHITESPACE_CHANGE;
if (options.whitespace_flags & GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL) if (options.flags & GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL)
xmparam.xpp.flags |= XDF_IGNORE_WHITESPACE_AT_EOL; xmparam.xpp.flags |= XDF_IGNORE_WHITESPACE_AT_EOL;
if ((xdl_result = xdl_merge(&ancestor_mmfile, &our_mmfile, if ((xdl_result = xdl_merge(&ancestor_mmfile, &our_mmfile,
......
...@@ -198,7 +198,7 @@ void test_merge_files__automerge_whitespace_eol(void) ...@@ -198,7 +198,7 @@ void test_merge_files__automerge_whitespace_eol(void)
theirs.path = "testfile.txt"; theirs.path = "testfile.txt";
theirs.mode = 0100755; theirs.mode = 0100755;
opts.whitespace_flags |= GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL; opts.flags |= GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL;
cl_git_pass(git_merge_file(&result, &ancestor, &ours, &theirs, &opts)); cl_git_pass(git_merge_file(&result, &ancestor, &ours, &theirs, &opts));
cl_assert_equal_i(1, result.automergeable); cl_assert_equal_i(1, result.automergeable);
...@@ -236,7 +236,7 @@ void test_merge_files__automerge_whitespace_change(void) ...@@ -236,7 +236,7 @@ void test_merge_files__automerge_whitespace_change(void)
theirs.path = "testfile.txt"; theirs.path = "testfile.txt";
theirs.mode = 0100755; theirs.mode = 0100755;
opts.whitespace_flags |= GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE; opts.flags |= GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE;
cl_git_pass(git_merge_file(&result, &ancestor, &ours, &theirs, &opts)); cl_git_pass(git_merge_file(&result, &ancestor, &ours, &theirs, &opts));
cl_assert_equal_i(1, result.automergeable); cl_assert_equal_i(1, result.automergeable);
......
...@@ -54,7 +54,7 @@ void test_merge_trees_whitespace__eol(void) ...@@ -54,7 +54,7 @@ void test_merge_trees_whitespace__eol(void)
{ 0100644, "ee3c2aac8e03224c323b58ecb1f9eef616745467", 0, "test.txt" }, { 0100644, "ee3c2aac8e03224c323b58ecb1f9eef616745467", 0, "test.txt" },
}; };
opts.whitespace_flags |= GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL; opts.file_flags |= GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL;
cl_git_pass(merge_trees_from_branches(&index, repo, BRANCH_A_EOL, BRANCH_B_EOL, &opts)); cl_git_pass(merge_trees_from_branches(&index, repo, BRANCH_A_EOL, BRANCH_B_EOL, &opts));
...@@ -72,7 +72,7 @@ void test_merge_trees_whitespace__change(void) ...@@ -72,7 +72,7 @@ void test_merge_trees_whitespace__change(void)
{ 0100644, "a827eab4fd66ab37a6ebcfaa7b7e341abfd55947", 0, "test.txt" }, { 0100644, "a827eab4fd66ab37a6ebcfaa7b7e341abfd55947", 0, "test.txt" },
}; };
opts.whitespace_flags |= GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE; opts.file_flags |= GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE;
cl_git_pass(merge_trees_from_branches(&index, repo, BRANCH_A_CHANGE, BRANCH_B_CHANGE, &opts)); cl_git_pass(merge_trees_from_branches(&index, repo, BRANCH_A_CHANGE, BRANCH_B_CHANGE, &opts));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment