Merge branch 'jk/ref-filter-colors-fix'
This is the "theoretically more correct" approach of simply stepping back to the state before plumbing commands started paying attention to "color.ui" configuration variable. Let's run with this one. * jk/ref-filter-colors-fix: tag: respect color.ui config Revert "color: check color.ui in git_default_config()" Revert "t6006: drop "always" color config tests" Revert "color: make "always" the same as "auto" in config"
This commit is contained in:
commit
1c0b983a77
@ -1058,10 +1058,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
|
||||||
@ -1072,11 +1072,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
|
||||||
@ -1140,12 +1141,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
|
||||||
@ -1192,10 +1193,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.
|
||||||
|
@ -93,7 +93,7 @@ static int git_branch_config(const char *var, const char *value, void *cb)
|
|||||||
return config_error_nonbool(var);
|
return config_error_nonbool(var);
|
||||||
return color_parse(value, branch_colors[slot]);
|
return color_parse(value, branch_colors[slot]);
|
||||||
}
|
}
|
||||||
return git_default_config(var, value, cb);
|
return git_color_default_config(var, value, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *branch_get_color(enum color_branch ix)
|
static const char *branch_get_color(enum color_branch ix)
|
||||||
|
@ -126,7 +126,8 @@ static int git_clean_config(const char *var, const char *value, void *cb)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return git_default_config(var, value, cb);
|
/* inspect the color.ui config variable and others */
|
||||||
|
return git_color_default_config(var, value, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *clean_get_color(enum color_clean ix)
|
static const char *clean_get_color(enum color_clean ix)
|
||||||
|
@ -275,7 +275,7 @@ static int wait_all(void)
|
|||||||
static int grep_cmd_config(const char *var, const char *value, void *cb)
|
static int grep_cmd_config(const char *var, const char *value, void *cb)
|
||||||
{
|
{
|
||||||
int st = grep_config(var, value, cb);
|
int st = grep_config(var, value, cb);
|
||||||
if (git_default_config(var, value, cb) < 0)
|
if (git_color_default_config(var, value, cb) < 0)
|
||||||
st = -1;
|
st = -1;
|
||||||
|
|
||||||
if (!strcmp(var, "grep.threads")) {
|
if (!strcmp(var, "grep.threads")) {
|
||||||
|
@ -554,7 +554,7 @@ static int git_show_branch_config(const char *var, const char *value, void *cb)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return git_default_config(var, value, cb);
|
return git_color_default_config(var, value, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int omit_in_dense(struct commit *commit, struct commit **rev, int n)
|
static int omit_in_dense(struct commit *commit, struct commit **rev, int n)
|
||||||
|
@ -158,7 +158,7 @@ static int git_tag_config(const char *var, const char *value, void *cb)
|
|||||||
|
|
||||||
if (starts_with(var, "column."))
|
if (starts_with(var, "column."))
|
||||||
return git_column_config(var, value, "tag", &colopts);
|
return git_column_config(var, value, "tag", &colopts);
|
||||||
return git_default_config(var, value, cb);
|
return git_color_default_config(var, value, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void write_tag_body(int fd, const struct object_id *oid)
|
static void write_tag_body(int fd, const struct object_id *oid)
|
||||||
|
10
color.c
10
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;
|
||||||
}
|
}
|
||||||
@ -368,6 +368,14 @@ int git_color_config(const char *var, const char *value, void *cb)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int git_color_default_config(const char *var, const char *value, void *cb)
|
||||||
|
{
|
||||||
|
if (git_color_config(var, value, cb) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return git_default_config(var, value, cb);
|
||||||
|
}
|
||||||
|
|
||||||
void color_print_strbuf(FILE *fp, const char *color, const struct strbuf *sb)
|
void color_print_strbuf(FILE *fp, const char *color, const struct strbuf *sb)
|
||||||
{
|
{
|
||||||
if (*color)
|
if (*color)
|
||||||
|
4
config.c
4
config.c
@ -16,7 +16,6 @@
|
|||||||
#include "string-list.h"
|
#include "string-list.h"
|
||||||
#include "utf8.h"
|
#include "utf8.h"
|
||||||
#include "dir.h"
|
#include "dir.h"
|
||||||
#include "color.h"
|
|
||||||
|
|
||||||
struct config_source {
|
struct config_source {
|
||||||
struct config_source *prev;
|
struct config_source *prev;
|
||||||
@ -1351,9 +1350,6 @@ int git_default_config(const char *var, const char *value, void *dummy)
|
|||||||
if (starts_with(var, "advice."))
|
if (starts_with(var, "advice."))
|
||||||
return git_default_advice_config(var, value);
|
return git_default_advice_config(var, value);
|
||||||
|
|
||||||
if (git_color_config(var, value, dummy) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (!strcmp(var, "pager.color") || !strcmp(var, "color.pager")) {
|
if (!strcmp(var, "pager.color") || !strcmp(var, "color.pager")) {
|
||||||
pager_use_color = git_config_bool(var,value);
|
pager_use_color = git_config_bool(var,value);
|
||||||
return 0;
|
return 0;
|
||||||
|
3
diff.c
3
diff.c
@ -358,6 +358,9 @@ int git_diff_ui_config(const char *var, const char *value, void *cb)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (git_color_config(var, value, cb) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
return git_diff_basic_config(var, value, cb);
|
return git_diff_basic_config(var, value, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,11 +208,26 @@ do
|
|||||||
has_no_color actual
|
has_no_color actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success "$desc enables colors for color.diff" '
|
||||||
|
git -c color.diff=always log --format=$color -1 >actual &&
|
||||||
|
has_color actual
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success "$desc enables colors for color.ui" '
|
||||||
|
git -c color.ui=always log --format=$color -1 >actual &&
|
||||||
|
has_color actual
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success "$desc respects --color" '
|
test_expect_success "$desc respects --color" '
|
||||||
git log --format=$color -1 --color >actual &&
|
git log --format=$color -1 --color >actual &&
|
||||||
has_color actual
|
has_color actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success "$desc respects --no-color" '
|
||||||
|
git -c color.ui=always log --format=$color -1 --no-color >actual &&
|
||||||
|
has_no_color actual
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success TTY "$desc respects --color=auto (stdout is tty)" '
|
test_expect_success TTY "$desc respects --color=auto (stdout is tty)" '
|
||||||
test_terminal git log --format=$color -1 --color=auto >actual &&
|
test_terminal git log --format=$color -1 --color=auto >actual &&
|
||||||
has_color actual
|
has_color actual
|
||||||
@ -225,11 +240,6 @@ do
|
|||||||
has_no_color actual
|
has_no_color actual
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success TTY "$desc respects --no-color" '
|
|
||||||
test_terminal git log --format=$color -1 --no-color >actual &&
|
|
||||||
has_no_color actual
|
|
||||||
'
|
|
||||||
done
|
done
|
||||||
|
|
||||||
test_expect_success '%C(always,...) enables color even without tty' '
|
test_expect_success '%C(always,...) enables color even without tty' '
|
||||||
|
@ -442,6 +442,11 @@ test_expect_success '--color can override tty check' '
|
|||||||
test_cmp expected.color actual
|
test_cmp expected.color actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'color.ui=always does not override tty check' '
|
||||||
|
git -c color.ui=always for-each-ref --format="$color_format" >actual &&
|
||||||
|
test_cmp expected.bare actual
|
||||||
|
'
|
||||||
|
|
||||||
cat >expected <<\EOF
|
cat >expected <<\EOF
|
||||||
heads/master
|
heads/master
|
||||||
tags/master
|
tags/master
|
||||||
|
@ -1918,6 +1918,12 @@ test_expect_success '--color overrides auto-color' '
|
|||||||
test_cmp expect.color actual
|
test_cmp expect.color actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'color.ui=always overrides auto-color' '
|
||||||
|
git -c color.ui=always tag $color_args >actual.raw &&
|
||||||
|
test_decode_color <actual.raw >actual &&
|
||||||
|
test_cmp expect.color actual
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'setup --merged test tags' '
|
test_expect_success 'setup --merged test tags' '
|
||||||
git tag mergetest-1 HEAD~2 &&
|
git tag mergetest-1 HEAD~2 &&
|
||||||
git tag mergetest-2 HEAD~1 &&
|
git tag mergetest-2 HEAD~1 &&
|
||||||
|
Loading…
Reference in New Issue
Block a user