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

Re: [RFC] Git config file reader in Perl (WIP)

From
Jakub Narebski <jnareb@gmail.com>
Date
Jan 17, 2007, 12:11 UTC
Message-ID
<200701171311.36358.jnareb@gmail.com>
In-Reply-To
<Pine.LNX.4.63.0701171138371.22628@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin wrote:
Show 23 quoted lines
> 
> On Wed, 17 Jan 2007, Jakub Narebski wrote:
> 
>> Johannes Schindelin wrote:
>>> 
>>> On Wed, 17 Jan 2007, Jakub Narebski wrote:
>>> 
>>>> Johannes Schindelin wrote:
>>>> 
>>>>> So, how about a "git repo-config --dump" which outputs a stream of NUL 
>>>>> separated keys and values? This should be really easy to "parse", and 
>>>>> there are no ambiguities: No key or value can contain a NUL.
>>>> 
>>>> Good idea, although "\n" would work as well as NUL.
>>> 
>>> No it would not:
>>> 
>>> 	[someSection]
>>> 		thisKey = has\na\nvalue\with\nseveral\nnewlines
>> 
>> $ fatal: bad config file line <nn> in <config>
> 
> Yeah, sorry. But you got the point.
No, I don't got the point. No key or value can contain "\n".
Show 24 quoted lines
>>>> The only problem is with "key without value" case, i.e. something like
>>>> 
>>>>   [section]
>>>>   	noval
>>>> 
>>>> which shows as
>>>> 
>>>>   section.noval
>>> 
>>> but is equivalent to
>>> 
>>> 	[section]
>>> 		noval = true
>>> 
>>> Since it is by definition a boolean value.
>> 
>> But only for "git repo-config --bool --get section.noval" output.
>> Semantically equivalent to "true".
>> 
>> But without --bool it returns like it was "".
> 
> Yes, it returns "", but this is _wrong_. A single "[section] noval" _only_ 
> makes sense as a boolean. The information lies in its _presence_, which is 
> as good as saying "true".
With "\n" as separator you can simply rrturn NUL in the noval case.
-- 
Jakub Narebski
Poland
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 23 of 54 in “[RFC] Git config file reader in Perl (WIP)”
  1. Jakub NarebskiJan 15, 2007
  2. Eric WongJan 15, 2007
  3. Jakub NarebskiJan 15, 2007
  4. Eric WongJan 15, 2007
  5. Shawn O. PearceJan 15, 2007
  6. Jakub NarebskiJan 15, 2007
  7. Eric WongJan 15, 2007
  8. Johannes SchindelinJan 15, 2007
  9. Nikolai WeibullJan 15, 2007
  10. Johannes SchindelinJan 15, 2007
  11. Nikolai WeibullJan 15, 2007
  12. Jakub NarebskiJan 15, 2007
  13. Junio C HamanoJan 16, 2007
  14. Johannes SchindelinJan 16, 2007
  15. Jakub NarebskiJan 16, 2007
  16. Nikolai WeibullJan 16, 2007
  17. Jakub NarebskiJan 16, 2007
  18. Johannes SchindelinJan 16, 2007
  19. Jakub NarebskiJan 16, 2007
  20. Johannes SchindelinJan 17, 2007
  21. Jakub NarebskiJan 17, 2007
  22. Johannes SchindelinJan 17, 2007
  23. Jakub NarebskiJan 17, 2007
  24. Johannes SchindelinJan 17, 2007
  25. Jakub NarebskiJan 17, 2007
  26. Jakub NarebskiJan 19, 2007
  27. Jakub NarebskiJan 19, 2007
  28. Johannes SchindelinJan 19, 2007
  29. Jakub NarebskiJan 19, 2007
  30. Johannes SchindelinJan 20, 2007
  31. Jakub NarebskiJan 20, 2007
  32. Junio C HamanoJan 20, 2007
  33. config_set_multivar(): disallow newlines in keysJohannes Schindelin, Jan 20, 2007
  34. Junio C HamanoJan 20, 2007
  35. Alex RiesenJan 22, 2007
  36. Johannes SchindelinJan 22, 2007
  37. Alex RiesenJan 22, 2007
  38. Johannes SchindelinJan 22, 2007
  39. Alex RiesenJan 22, 2007
  40. Johannes SchindelinJan 23, 2007
  41. Alex RiesenJan 23, 2007
  42. Documentation/config.txt: Document config file syntax betterJakub Narebski, Jan 20, 2007
  43. Documentation/config.txt: Document config file syntax betterJakub Narebski, Jan 22, 2007
  44. 2/1 Documentation/config.txt: Correct info about subsection nameJakub Narebski, Jan 24, 2007
  45. Johannes SchindelinJan 16, 2007
  46. Nikolai WeibullJan 17, 2007
  47. Jakub NarebskiJan 17, 2007
  48. Nikolai WeibullJan 17, 2007
  49. Jakub NarebskiJan 17, 2007
  50. Johannes SchindelinJan 18, 2007
  51. Eric WongJan 16, 2007
  52. Eric WongJan 16, 2007
  53. Johannes SchindelinJan 16, 2007
  54. Eric WongJan 16, 2007

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.