Merge branch 'bw/union-merge-refactor'
* bw/union-merge-refactor: merge-file: add option to select union merge favor merge-file: add option to specify the marker size refactor merge flags into xmparam_t make union merge an xdl merge favor
This commit is contained in:
@@ -27,30 +27,35 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
|
||||
mmbuffer_t result = {NULL, 0};
|
||||
xmparam_t xmp = {{XDF_NEED_MINIMAL}};
|
||||
int ret = 0, i = 0, to_stdout = 0;
|
||||
int level = XDL_MERGE_ZEALOUS_ALNUM;
|
||||
int style = 0, quiet = 0;
|
||||
int favor = 0;
|
||||
int quiet = 0;
|
||||
int nongit;
|
||||
|
||||
struct option options[] = {
|
||||
OPT_BOOLEAN('p', "stdout", &to_stdout, "send results to standard output"),
|
||||
OPT_SET_INT(0, "diff3", &style, "use a diff3 based merge", XDL_MERGE_DIFF3),
|
||||
OPT_SET_INT(0, "ours", &favor, "for conflicts, use our version",
|
||||
OPT_SET_INT(0, "diff3", &xmp.style, "use a diff3 based merge", XDL_MERGE_DIFF3),
|
||||
OPT_SET_INT(0, "ours", &xmp.favor, "for conflicts, use our version",
|
||||
XDL_MERGE_FAVOR_OURS),
|
||||
OPT_SET_INT(0, "theirs", &favor, "for conflicts, use their version",
|
||||
OPT_SET_INT(0, "theirs", &xmp.favor, "for conflicts, use their version",
|
||||
XDL_MERGE_FAVOR_THEIRS),
|
||||
OPT_SET_INT(0, "union", &xmp.favor, "for conflicts, use a union version",
|
||||
XDL_MERGE_FAVOR_UNION),
|
||||
OPT_INTEGER(0, "marker-size", &xmp.marker_size,
|
||||
"for conflicts, use this marker size"),
|
||||
OPT__QUIET(&quiet),
|
||||
OPT_CALLBACK('L', NULL, names, "name",
|
||||
"set labels for file1/orig_file/file2", &label_cb),
|
||||
OPT_END(),
|
||||
};
|
||||
|
||||
xmp.level = XDL_MERGE_ZEALOUS_ALNUM;
|
||||
xmp.style = 0;
|
||||
xmp.favor = 0;
|
||||
|
||||
prefix = setup_git_directory_gently(&nongit);
|
||||
if (!nongit) {
|
||||
/* Read the configuration file */
|
||||
git_config(git_xmerge_config, NULL);
|
||||
if (0 <= git_xmerge_style)
|
||||
style = git_xmerge_style;
|
||||
xmp.style = git_xmerge_style;
|
||||
}
|
||||
|
||||
argc = parse_options(argc, argv, prefix, options, merge_file_usage, 0);
|
||||
@@ -73,7 +78,7 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
|
||||
}
|
||||
|
||||
ret = xdl_merge(mmfs + 1, mmfs + 0, names[0], mmfs + 2, names[2],
|
||||
&xmp, XDL_MERGE_FLAGS(level, style, favor), &result);
|
||||
&xmp, &result);
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
free(mmfs[i].ptr);
|
||||
|
||||
Reference in New Issue
Block a user