To find all config items "foo.*" that are configured as the Boolean value "true", you can try executing git config --type=bool --name-only --get-regexp '^foo\.' true ... and hope that you didn't spell "true" as "on", "True" or "1" back when you populated your config. This shortcoming has been mentioned as a left-over bit [1] [2]. This patch series teaches `git config` to canonicalize the incoming "value_regex" ("true" in the example above), then canonicalize candidate values as we go through the config. Or if you will, `git config` learns a brand new type of regex, corresponding to the different ways there are of spelling "true" and "false", respectively. `--type=bool-or-int` gets the same treatment, except we need to to be able to handle the ints and regexes matching particular ints that we must expect. That said, even with `--type=bool` we can't move too aggressively towards *requiring* that the incoming "value_regex" canonializes as a Boolean value. The penultimate patch starts to warn on non-canonicalizing values; the final patch makes us bail out entirely. The last patch is not meant for immediate inclusion, but I post it anyway. I can re-submit it at an appropriate time, or maybe it could slumber on pu until the time is ripe for completing the switch. [1] https://git-blame.blogspot.com/p/leftover-bits.html [2] https://public-inbox.org/git/xmqq7frsh4tw.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxx/ Martin Ågren (8): config: make `git_parse_maybe_bool_text()` public t1300: modernize part of script builtin/config: extract `handle_value_regex()` from `get_value()` builtin/config: collect "value_regexp" data in a struct builtin/config: canonicalize "value_regex" with `--type=bool` builtin/config: canonicalize "value_regex" with `--type=bool-or-int` builtin/config: warn if "value_regex" doesn't canonicalize as boolean builtin/config: die if "value_regex" doesn't canonicalize as boolean Documentation/git-config.txt | 5 + builtin/config.c | 84 +++++++++++---- config.c | 2 +- config.h | 7 ++ t/t1300-config.sh | 199 ++++++++++++++++++++++------------- 5 files changed, 203 insertions(+), 94 deletions(-) -- 2.24.0