git-merge-recursive: learn to honor merge.conflictstyle
This teaches the low-level ll_xdl_merge() routine to honor merge.conflictstyle configuration variable, so that merge-recursive strategy can show the conflicts in the style of user's choice. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b541248467
commit
c236bcd061
@ -1348,7 +1348,7 @@ static int merge_config(const char *var, const char *value, void *cb)
|
||||
merge_rename_limit = git_config_int(var, value);
|
||||
return 0;
|
||||
}
|
||||
return git_default_config(var, value, cb);
|
||||
return git_xmerge_config(var, value, cb);
|
||||
}
|
||||
|
||||
int cmd_merge_recursive(int argc, const char **argv, const char *prefix)
|
||||
|
16
ll-merge.c
16
ll-merge.c
@ -63,6 +63,7 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
|
||||
int virtual_ancestor)
|
||||
{
|
||||
xpparam_t xpp;
|
||||
int style = 0;
|
||||
|
||||
if (buffer_is_binary(orig->ptr, orig->size) ||
|
||||
buffer_is_binary(src1->ptr, src1->size) ||
|
||||
@ -77,10 +78,12 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
|
||||
}
|
||||
|
||||
memset(&xpp, 0, sizeof(xpp));
|
||||
if (git_xmerge_style >= 0)
|
||||
style = git_xmerge_style;
|
||||
return xdl_merge(orig,
|
||||
src1, name1,
|
||||
src2, name2,
|
||||
&xpp, XDL_MERGE_ZEALOUS,
|
||||
&xpp, XDL_MERGE_ZEALOUS | style,
|
||||
result);
|
||||
}
|
||||
|
||||
@ -95,10 +98,15 @@ static int ll_union_merge(const struct ll_merge_driver *drv_unused,
|
||||
char *src, *dst;
|
||||
long size;
|
||||
const int marker_size = 7;
|
||||
int status, saved_style;
|
||||
|
||||
int status = ll_xdl_merge(drv_unused, result, path_unused,
|
||||
orig, src1, NULL, src2, NULL,
|
||||
virtual_ancestor);
|
||||
/* We have to force the RCS "merge" style */
|
||||
saved_style = git_xmerge_style;
|
||||
git_xmerge_style = 0;
|
||||
status = ll_xdl_merge(drv_unused, result, path_unused,
|
||||
orig, src1, NULL, src2, NULL,
|
||||
virtual_ancestor);
|
||||
git_xmerge_style = saved_style;
|
||||
if (status <= 0)
|
||||
return status;
|
||||
size = result->size;
|
||||
|
Loading…
Reference in New Issue
Block a user