Revert "color: make "always" the same as "auto" in config"
This reverts commit6be4595edb
. That commit weakened the "always" setting of color config so that it acted as "auto". This was meant to solve regressions in v2.14.2 in which setting "color.ui=always" in the on-disk config broke scripts like add--interactive, because the plumbing diff commands began to generate color output. This was due to136c8c8b8f
(color: check color.ui in git_default_config(), 2017-07-13), which was in turn trying to fix issues caused by4c7f1819b3
(make color.ui default to 'auto', 2013-06-10). But in weakening "always", we created even more problems, as people expect to be able to use "git -c color.ui=always" to force color (especially because some commands don't have their own --color flag). We can fix that by special-casing the command-line "-c", but now things are getting pretty confusing. Instead of piling hacks upon hacks, let's start peeling off the hacks. The first step is dropping the weakening of "always", which this revert does. Note that we could actually revert the whole series merged in byda15b78e52
. Most of that series consists of preparations to the tests to handle the weakening of "-c color.ui=always". But it's worth keeping for a few reasons: - there are some other preparatory cleanups, likee433749d86
(test-terminal: set TERM=vt100, 2017-10-03) - it adds "--color" options more consistently in0c88bf5050
(provide --color option for all ref-filter users, 2017-10-03) - some of the cases dropping "-c" end up being more robust and realistic tests, as in01c94e9001
(t7508: use test_terminal for color output, 2017-10-03) - the preferred tool for overriding config is "--color", and we should be modeling that consistently We can individually revert the few commits necessary to restore some useful tests (which will be done on top of this patch). Note that this isn't a pure revert; we'll keep the test added in t3701, but mark it as failure for now. 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
433d62fea9
commit
2c1acdf6c9
@ -1052,10 +1052,10 @@ clean.requireForce::
|
|||||||
|
|
||||||
color.branch::
|
color.branch::
|
||||||
A boolean to enable/disable color in the output of
|
A boolean to enable/disable color in the output of
|
||||||
linkgit:git-branch[1]. May be set to `false` (or `never`) to
|
linkgit:git-branch[1]. May be set to `always`,
|
||||||
disable color entirely, `auto` (or `true` or `always`) in which
|
`false` (or `never`) or `auto` (or `true`), in which case colors are used
|
||||||
case colors are used only when the output is to a terminal. If
|
only when the output is to a terminal. If unset, then the
|
||||||
unset, then the value of `color.ui` is used (`auto` by default).
|
value of `color.ui` is used (`auto` by default).
|
||||||
|
|
||||||
color.branch.<slot>::
|
color.branch.<slot>::
|
||||||
Use customized color for branch coloration. `<slot>` is one of
|
Use customized color for branch coloration. `<slot>` is one of
|
||||||
@ -1066,11 +1066,12 @@ color.branch.<slot>::
|
|||||||
|
|
||||||
color.diff::
|
color.diff::
|
||||||
Whether to use ANSI escape sequences to add color to patches.
|
Whether to use ANSI escape sequences to add color to patches.
|
||||||
If this is set to `true` or `auto`, linkgit:git-diff[1],
|
If this is set to `always`, linkgit:git-diff[1],
|
||||||
linkgit:git-log[1], and linkgit:git-show[1] will use color
|
linkgit:git-log[1], and linkgit:git-show[1] will use color
|
||||||
when output is to the terminal. The value `always` is a
|
for all patches. If it is set to `true` or `auto`, those
|
||||||
historical synonym for `auto`. If unset, then the value of
|
commands will only use color when output is to the terminal.
|
||||||
`color.ui` is used (`auto` by default).
|
If unset, then the value of `color.ui` is used (`auto` by
|
||||||
|
default).
|
||||||
+
|
+
|
||||||
This does not affect linkgit:git-format-patch[1] or the
|
This does not affect linkgit:git-format-patch[1] or the
|
||||||
'git-diff-{asterisk}' plumbing commands. Can be overridden on the
|
'git-diff-{asterisk}' plumbing commands. Can be overridden on the
|
||||||
@ -1123,12 +1124,12 @@ color.grep.<slot>::
|
|||||||
--
|
--
|
||||||
|
|
||||||
color.interactive::
|
color.interactive::
|
||||||
When set to `true` or `auto`, use colors for interactive prompts
|
When set to `always`, always use colors for interactive prompts
|
||||||
and displays (such as those used by "git-add --interactive" and
|
and displays (such as those used by "git-add --interactive" and
|
||||||
"git-clean --interactive") when the output is to the terminal.
|
"git-clean --interactive"). When false (or `never`), never.
|
||||||
When false (or `never`), never show colors. The value `always`
|
When set to `true` or `auto`, use colors only when the output is
|
||||||
is a historical synonym for `auto`. If unset, then the value of
|
to the terminal. If unset, then the value of `color.ui` is
|
||||||
`color.ui` is used (`auto` by default).
|
used (`auto` by default).
|
||||||
|
|
||||||
color.interactive.<slot>::
|
color.interactive.<slot>::
|
||||||
Use customized color for 'git add --interactive' and 'git clean
|
Use customized color for 'git add --interactive' and 'git clean
|
||||||
@ -1175,10 +1176,10 @@ color.ui::
|
|||||||
configuration to set a default for the `--color` option. Set it
|
configuration to set a default for the `--color` option. Set it
|
||||||
to `false` or `never` if you prefer Git commands not to use
|
to `false` or `never` if you prefer Git commands not to use
|
||||||
color unless enabled explicitly with some other configuration
|
color unless enabled explicitly with some other configuration
|
||||||
or the `--color` option. Set it to `true` or `auto` to enable
|
or the `--color` option. Set it to `always` if you want all
|
||||||
color when output is written to the terminal (this is also the
|
output not intended for machine consumption to use color, to
|
||||||
default since Git 1.8.4). The value `always` is a historical
|
`true` or `auto` (this is the default since Git 1.8.4) if you
|
||||||
synonym for `auto`.
|
want such output to use color when written to the terminal.
|
||||||
|
|
||||||
column.ui::
|
column.ui::
|
||||||
Specify whether supported commands should output in columns.
|
Specify whether supported commands should output in columns.
|
||||||
|
2
color.c
2
color.c
@ -308,7 +308,7 @@ int git_config_colorbool(const char *var, const char *value)
|
|||||||
if (!strcasecmp(value, "never"))
|
if (!strcasecmp(value, "never"))
|
||||||
return 0;
|
return 0;
|
||||||
if (!strcasecmp(value, "always"))
|
if (!strcasecmp(value, "always"))
|
||||||
return var ? GIT_COLOR_AUTO : 1;
|
return 1;
|
||||||
if (!strcasecmp(value, "auto"))
|
if (!strcasecmp(value, "auto"))
|
||||||
return GIT_COLOR_AUTO;
|
return GIT_COLOR_AUTO;
|
||||||
}
|
}
|
||||||
|
@ -483,7 +483,7 @@ test_expect_success 'hunk-editing handles custom comment char' '
|
|||||||
git diff --exit-code
|
git diff --exit-code
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'add -p works even with color.ui=always' '
|
test_expect_failure 'add -p works even with color.ui=always' '
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
echo change >>file &&
|
echo change >>file &&
|
||||||
test_config color.ui always &&
|
test_config color.ui always &&
|
||||||
|
Reference in New Issue
Block a user