builtin/config: introduce color
type specifier
As of this commit, the canonical way to retreive an ANSI-compatible color escape sequence from a configuration file is with the `--get-color` action. This is to allow Git to "fall back" on a default value for the color should the given section not exist in the specified configuration(s). With the addition of `--default`, this is no longer needed since: $ git config --default red --type=color core.section will be have exactly as: $ git config --get-color core.section red For consistency, let's introduce `--type=color` and encourage its use with `--default` together over `--get-color` alone. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
6d2f9acc0f
commit
63e2a0f8e9
@ -931,6 +931,36 @@ test_expect_success 'get --expiry-date' '
|
||||
test_must_fail git config --expiry-date date.invalid1
|
||||
'
|
||||
|
||||
test_expect_success 'get --type=color' '
|
||||
rm .git/config &&
|
||||
git config foo.color "red" &&
|
||||
git config --get --type=color foo.color >actual.raw &&
|
||||
test_decode_color <actual.raw >actual &&
|
||||
echo "<RED>" >expect &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect << EOF
|
||||
[foo]
|
||||
color = red
|
||||
EOF
|
||||
|
||||
test_expect_success 'set --type=color' '
|
||||
rm .git/config &&
|
||||
git config --type=color foo.color "red" &&
|
||||
test_cmp expect .git/config
|
||||
'
|
||||
|
||||
test_expect_success 'get --type=color barfs on non-color' '
|
||||
echo "[foo]bar=not-a-color" >.git/config &&
|
||||
test_must_fail git config --get --type=color foo.bar
|
||||
'
|
||||
|
||||
test_expect_success 'set --type=color barfs on non-color' '
|
||||
test_must_fail git config --type=color foo.color "not-a-color" 2>error &&
|
||||
test_i18ngrep "cannot parse color" error
|
||||
'
|
||||
|
||||
cat > expect << EOF
|
||||
[quote]
|
||||
leading = " test"
|
||||
|
Reference in New Issue
Block a user