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>maint
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);
|
merge_rename_limit = git_config_int(var, value);
|
||||||
return 0;
|
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)
|
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)
|
int virtual_ancestor)
|
||||||
{
|
{
|
||||||
xpparam_t xpp;
|
xpparam_t xpp;
|
||||||
|
int style = 0;
|
||||||
|
|
||||||
if (buffer_is_binary(orig->ptr, orig->size) ||
|
if (buffer_is_binary(orig->ptr, orig->size) ||
|
||||||
buffer_is_binary(src1->ptr, src1->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));
|
memset(&xpp, 0, sizeof(xpp));
|
||||||
|
if (git_xmerge_style >= 0)
|
||||||
|
style = git_xmerge_style;
|
||||||
return xdl_merge(orig,
|
return xdl_merge(orig,
|
||||||
src1, name1,
|
src1, name1,
|
||||||
src2, name2,
|
src2, name2,
|
||||||
&xpp, XDL_MERGE_ZEALOUS,
|
&xpp, XDL_MERGE_ZEALOUS | style,
|
||||||
result);
|
result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,10 +98,15 @@ static int ll_union_merge(const struct ll_merge_driver *drv_unused,
|
||||||
char *src, *dst;
|
char *src, *dst;
|
||||||
long size;
|
long size;
|
||||||
const int marker_size = 7;
|
const int marker_size = 7;
|
||||||
|
int status, saved_style;
|
||||||
|
|
||||||
int status = ll_xdl_merge(drv_unused, result, path_unused,
|
/* We have to force the RCS "merge" style */
|
||||||
orig, src1, NULL, src2, NULL,
|
saved_style = git_xmerge_style;
|
||||||
virtual_ancestor);
|
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)
|
if (status <= 0)
|
||||||
return status;
|
return status;
|
||||||
size = result->size;
|
size = result->size;
|
||||||
|
|
Loading…
Reference in New Issue