userdiff: require explicitly allowing textconv
Diffs that have been produced with textconv almost certainly cannot be applied, so we want to be careful not to generate them in things like format-patch. This introduces a new diff options, ALLOW_TEXTCONV, which controls this behavior. It is off by default, but is explicitly turned on for the "log" family of commands, as well as the "diff" porcelain (but not diff-* plumbing). Because both text conversion and external diffing are controlled by these diff options, we can get rid of the "plumbing versus porcelain" distinction when reading the config. This was an attempt to control the same thing, but suffered from being too coarse-grained. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
04427ac848
commit
c7534ef4a1
10
userdiff.c
10
userdiff.c
@ -120,7 +120,7 @@ static int parse_tristate(int *b, const char *k, const char *v)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int userdiff_config_basic(const char *k, const char *v)
|
||||
int userdiff_config(const char *k, const char *v)
|
||||
{
|
||||
struct userdiff_driver *drv;
|
||||
|
||||
@ -130,14 +130,6 @@ int userdiff_config_basic(const char *k, const char *v)
|
||||
return parse_funcname(&drv->funcname, k, v, REG_EXTENDED);
|
||||
if ((drv = parse_driver(k, v, "binary")))
|
||||
return parse_tristate(&drv->binary, k, v);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int userdiff_config_porcelain(const char *k, const char *v)
|
||||
{
|
||||
struct userdiff_driver *drv;
|
||||
|
||||
if ((drv = parse_driver(k, v, "command")))
|
||||
return parse_string(&drv->external, k, v);
|
||||
if ((drv = parse_driver(k, v, "textconv")))
|
||||
|
Reference in New Issue
Block a user