]> git.ipfire.org Git - thirdparty/git.git/commitdiff
tag: respect color.ui config
authorJeff King <peff@peff.net>
Fri, 13 Oct 2017 17:26:02 +0000 (13:26 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Oct 2017 06:10:13 +0000 (15:10 +0900)
Since 11b087adfd (ref-filter: consult want_color() before
emitting colors, 2017-07-13), we expect that setting
"color.ui" to "always" will enable color tag formats even
without a tty.  As that commit was built on top of
136c8c8b8f (color: check color.ui in git_default_config(),
2017-07-13) from the same series, we didn't need to touch
tag's config parsing at all.

However, since we reverted 136c8c8b8f, we now need to
explicitly call git_color_default_config() to make this
work.

Let's do so, and also restore the test dropped in 0c88bf5050
(provide --color option for all ref-filter users,
2017-10-03). That commit swapped out our "color.ui=always"
test for "--color" in preparation for "always" going away.
But since it is here to stay, we should test both cases.

Note that for-each-ref also lost its color.ui support as
part of reverting 136c8c8b8f. But as a plumbing command, it
should _not_ respect the color.ui config. Since it also
gained a --color option in 0c88bf5050, that's the correct
way to ask it for color. We'll continue to test that, and
confirm that "color.ui" is not respected.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/tag.c
t/t6300-for-each-ref.sh
t/t7004-tag.sh

index fe0a8ab9446be00e6ea5cbda848a506fa4282682..00382a56f564bf55de13ba712b8e728b3b1c9b86 100644 (file)
@@ -158,7 +158,7 @@ static int git_tag_config(const char *var, const char *value, void *cb)
 
        if (starts_with(var, "column."))
                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)
index 6358134805302583a49f5102c225b643497637de..09f2b7799d5f6126d3b52cee17e52f9cf5a0b1e3 100755 (executable)
@@ -441,6 +441,11 @@ test_expect_success '--color can override tty check' '
        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
 heads/master
 tags/master
index b90db1bf749c3ab69d3a1adeec56d3c0e87d30a2..62aa322846be36a2794d4089369292cecd319d6b 100755 (executable)
@@ -1925,6 +1925,12 @@ test_expect_success '--color overrides auto-color' '
        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' '
        git tag mergetest-1 HEAD~2 &&
        git tag mergetest-2 HEAD~1 &&