This completes the transition from handling a "value_regexp" with `--type=bool` as a regex, to handling it on the assumption that it canonicalizes to a boolean value. Signed-off-by: Martin Ågren <martin.agren@xxxxxxxxx> --- Documentation/git-config.txt | 5 ++--- builtin/config.c | 4 ++-- t/t1300-config.sh | 5 +---- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt index 43310ca3c0..598915eac6 100644 --- a/Documentation/git-config.txt +++ b/Documentation/git-config.txt @@ -43,11 +43,10 @@ outgoing values are canonicalize-able under the given <type>. If no `--type=<type>` is given, no canonicalization will be performed. Callers may unset an existing `--type` specifier with `--no-type`. -With `--type=bool` or `--type=bool-or-int`, if `value_regex` is given +With `--type=bool-or-int`, if `value_regex` is given and canonicalizes to a boolean value, it matches all entries that canonicalize to the same boolean value. -The support for non-canonicalizing values of `value_regex` with -`--type=bool` is deprecated. +With `--type=bool`, `value_regex` (if given) must canonicalize. When reading, the values are read from the system, global and repository local configuration files by default, and options diff --git a/builtin/config.c b/builtin/config.c index 2af62b95f8..837766cfb3 100644 --- a/builtin/config.c +++ b/builtin/config.c @@ -303,8 +303,8 @@ static int handle_value_regex(const char *regex_) cmd_line_value.boolean = boolval; return 0; } - warning(_("value_regex '%s' cannot be canonicalized " - "to a boolean value"), regex_); + die(_("value_regex '%s' cannot be canonicalized " + "to a boolean value"), regex_); } if (type == TYPE_BOOL_OR_INT) { diff --git a/t/t1300-config.sh b/t/t1300-config.sh index 3e067c211d..9eccc255db 100755 --- a/t/t1300-config.sh +++ b/t/t1300-config.sh @@ -465,11 +465,8 @@ test_expect_success '--get canonicalizes integer value_regex with --type=bool' ' ' test_expect_success '--type=bool with "non-bool" value_regex' ' - echo true >expect && - git config --type=bool --get foo.y4 "t.*" >output 2>err && - test_cmp expect output && + test_must_fail git config --type=bool --get foo.y4 t >output 2>err && test_i18ngrep "cannot be canonicalized" err && - test_must_fail git config --type=bool --get foo.y4 "T.*" >output && test_must_be_empty output ' -- 2.24.0