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

Re: "man gitattributes" doesn't explain comma-separated attribute values

From
Philip Oakley <philipoakley@iee.org>
Date
Mar 18, 2019, 10:10 UTC
Message-ID
<21e31142-ace2-71e1-8a36-1940c35eb24d@iee.org>
In-Reply-To
<6aeca231-c024-1063-0f8c-03276c83161c@kdbg.org>
On 17/03/2019 08:18, Johannes Sixt wrote:
Show 25 quoted lines
> Am 16.03.19 um 23:09 schrieb Robert P. J. Day:
>> On Sat, 16 Mar 2019, Johannes Sixt wrote:
>>
>>> Am 16.03.19 um 13:22 schrieb Robert P. J. Day:
>>>>    as a working example, i looked at the top-level .gitattributes file
>>>> in the git source code itself, which opens with:
>>>>
>>>>    * whitespace=!indent,trail,space
>>>>    *.[ch] whitespace=indent,trail,space diff=cpp
>>>>    *.sh whitespace=indent,trail,space eol=lf
>>>>    ... snip ...
>>>>
>>>> first observation is that i see nothing in the man page that explains
>>>> the notion of a comma-separated list of attribute values.
>>> This comma-separated list is not a property of attributes in
>>> general, but a property of the whitespace attribute in particular.
>>> See core.whitespace in git-config(1) and "Checking whitespace
>>> errors" in gitattributes(5).
>>    ah, i was digging through the code trying to figure out where the
>> whole CSV thing was explained -- it's massively helpful to understand
>> that that property is specific to whitespace. that does not appear to
>> be clarified anywhere.
> But it is. The very first paragraph of gitattributes(5) states that
> attributes are whitespace separated. From this, conclude that the
> comma-separated list must pertain to the whitespace attribute.

I can't say that I follow that 'by omission'  argument. It is one of those argument types that sounds good in retrospect but is very hard for the unknowing reader to guess, especially as commas are widely taught as being one of the ubiquitous separators.

There is a similar issue with '/' in refs regarding the subtle distinctions between embedded characters that have a common convenience meaning vs the idea that they are all just a single whitespace separated string.

Given that, Robert may be able to suggest a short addendum that clarifies that the comma is processed elsewhere (IIUC).

Show 5 quoted lines
>   Now
> follow the documentation of that, and you end up at core.whitespace in
> git-config(1). There you have it as the very first phrase.
>
> -- Hannes
-- 
Philip
Previous: Johannes Sixt
Message 7 of 7 in “"man gitattributes" doesn't explain comma-separated attribute values”
  1. Robert P. J. DayMar 16, 2019
  2. Ævar Arnfjörð BjarmasonMar 16, 2019
  3. Robert P. J. DayMar 16, 2019
  4. Johannes SixtMar 16, 2019
  5. Robert P. J. DayMar 16, 2019
  6. Johannes SixtMar 17, 2019
  7. Philip OakleyMar 18, 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.