提交 be89cb23 编写于 作者: J Junio C Hamano

Allow the default low-level merge driver to be configured.

When no 'merge' attribute is given to a path, merge-recursive
uses the built-in xdl-merge as the low-level merge driver.

A new configuration item 'merge.default' can name a low-level
merge driver of user's choice to be used instead.
Signed-off-by: NJunio C Hamano <junkio@cox.net>
上级 f3ef6b6b
......@@ -839,12 +839,18 @@ static struct user_merge_fn {
char *cmdline;
char b_[1];
} *ll_user_merge_fns, **ll_user_merge_fns_tail;
static const char *default_ll_merge;
static int read_merge_config(const char *var, const char *value)
{
struct user_merge_fn *fn;
int blen, nlen;
if (!strcmp(var, "merge.default")) {
default_ll_merge = strdup(value);
return 0;
}
if (strcmp(var, "merge.driver"))
return 0;
if (!value)
......@@ -900,8 +906,12 @@ static ll_merge_fn find_ll_merge_fn(void *merge_attr, const char **cmdline)
return ll_xdl_merge;
else if (ATTR_FALSE(merge_attr))
return ll_binary_merge;
else if (ATTR_UNSET(merge_attr))
return ll_xdl_merge;
else if (ATTR_UNSET(merge_attr)) {
if (!default_ll_merge)
return ll_xdl_merge;
else
name = default_ll_merge;
}
else
name = merge_attr;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册