git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/8] builtin/config: canonicalize "value_regex" with `--type=bool[-or-int]`

From
MÅMartin Ågren <martin.agren@gmail.com>
Date
Nov 14, 2019, 06:40 UTC
Message-ID
<CAN0heSrTtEHM7bEGMbokf1RJDGPobD=C73Wq1Ry5fgE69+QV-g@mail.gmail.com>
In-Reply-To
<xmqqeeyb9p4i.fsf@gitster-ct.c.googlers.com>
Hi Junio
On Thu, 14 Nov 2019 at 03:19, Junio C Hamano <gitster@pobox.com> wrote:
Show 12 quoted lines
>
> Martin Ågren <martin.agren@gmail.com> writes:
>
> > `--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.
>
> Hmm, so I can say 1024k or 1m and that would match 1048576?
>
> Doubly nice.
>
> Looking forward to reading it thru.

Maybe you already noticed, but no, I didn't get to canonicalizing integers like that. What I meant was, type=bool-or-int learns to handle booleans similar to what I did to type=bool.

I don't feel entirely satisfied by some of my commit message oneliners. They could make that a bit clearer, I think.

Not directly related to your question, but I realize now that with type=bool-or-int, I only added the first of these example usages below as a test. The second one is perhaps just as interesting.

$ ./git -c an.int=1 config --get --type=bool-or-int an.int 1 1 $ ./git -c an.int=1 config --get --type=bool-or-int an.int on 1

This last one emits "1". That's because by the time we've decided to
output the value, `format_config()` has some logic around
type=bool-or-int, but doesn't know about why exactly we selected this
an.int=1 in the first place
  (git_parse_maybe_bool("1") == git_parse_maybe_bool_TEXT("on")).

Just after thinking about this for a short while, I can't immediately say whether this second one should emit "1" or "true". My added documentation is actually vague enough to allow both of these to happen... I'll ponder this.

Martin
Previous: Junio C HamanoNext: Jeff King
Message 20 of 23 in “builtin/config: canonicalize "value_regex" with `--type=bool[-or-int]`”
  1. 0/8 builtin/config: canonicalize "value_regex" with `--type=bool[-or-int]`Martin Ågren, Nov 13, 2019
  2. 1/8 config: make `git_parse_maybe_bool_text()` publicMartin Ågren, Nov 13, 2019
  3. 2/8 t1300: modernize part of scriptMartin Ågren, Nov 13, 2019
  4. Junio C HamanoNov 21, 2019
  5. 3/8 builtin/config: extract `handle_value_regex()` from `get_value()`Martin Ågren, Nov 13, 2019
  6. Junio C HamanoNov 21, 2019
  7. Martin ÅgrenNov 21, 2019
  8. 4/8 builtin/config: collect "value_regexp" data in a structMartin Ågren, Nov 13, 2019
  9. Junio C HamanoNov 21, 2019
  10. Martin ÅgrenNov 21, 2019
  11. Junio C HamanoNov 22, 2019
  12. 5/8 builtin/config: canonicalize "value_regex" with `--type=bool`Martin Ågren, Nov 13, 2019
  13. Junio C HamanoNov 21, 2019
  14. 6/8 builtin/config: canonicalize "value_regex" with `--type=bool-or-int`Martin Ågren, Nov 13, 2019
  15. 7/8 builtin/config: warn if "value_regex" doesn't canonicalize as booleanMartin Ågren, Nov 13, 2019
  16. Junio C HamanoNov 21, 2019
  17. Martin ÅgrenNov 21, 2019
  18. 8/8 builtin/config: die if "value_regex" doesn't canonicalize as booleanMartin Ågren, Nov 13, 2019
  19. Junio C HamanoNov 14, 2019
  20. Martin ÅgrenNov 14, 2019
  21. Jeff KingNov 14, 2019
  22. Martin ÅgrenNov 14, 2019
  23. Jeff KingNov 14, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.