On Fri, Apr 06, 2018 at 05:57:39PM +0100, Rafael Ascensao wrote: > On Fri, Apr 6, 2018 at 4:55 PM, Olaf Hering <olaf@xxxxxxxxx> wrote: > > > > This does not work. Initially I copied the global config into the > > repo and set all unwanted values to <empty>, like 'smtpuser='. > > Perhaps the config parser recognized that fact, but the consumer > > does not? > > > > Today someone asked on #git for a way to disable diff.external for a > single command. > Without thinking much I suggested $git -c diff.external= diff; which fails with: > `fatal: cannot run : No such file or directory` > > In this particular case there was `--no-ext-diff` to get around this > and the case was promptly resolved. > Just another another example where setting configuration values to > "empty" doesn't translate to "disable this option". Yeah, I think it would make sense in that case to reset external_diff_cmd_cfg to NULL. I'd almost say that git_config_string() should recognize and handle this case, but I suspect there are some callers who need special behavior (e.g., to set it back to some particular string). -Peff