On Wed, Feb 16, 2022 at 10:28:24AM +0000, brian m. carlson wrote: > On 2022-02-16 at 07:00:24, Johannes Sixt wrote: > > Just so you know where my confusion arises from: Your updated text has > > the structure (as I read it) > > > > if ... set or unspecified or if auto then ... detected ... and LF > > > > It is unclear whether the 'then' conditions apply only to 'if auto'. > > Even if the additional 'if' in the middle makes me think that the > > 'then's apply only to the 'auto' case, it is sufficently vage because in > > my mental model there is not much difference between an 'unset' and a > > set-to-'auto' attribute, and I wonder why the 'then's should not apply > > to the 'unset' case as well. > > > > Moreover, after re-reading the text, I notice that text may be read as > > "this attribute has an effect only if <conditions>" where <conditions> > > basically means "always except for when the 'if auto' case is not met", > > right? Would it perhaps be better to write "has no effect if <very > > specific condition>"? > > The situation is that eol is in effect if and only if: Well written > > * text is set; > * text is unspecified; or > * text is auto, the file is detected as text, and the file has LF line > endings in the index. > > Alternately, it has no effect if and only if: > > * text is unset; > * text is auto and the file is detected as binary; or > * text is auto and the file is detected as text and has CRLF line > endings. ... CRLF line endings in the index. ^^^^^^^^^^^^ One of the reasons that the eol attribute is not 100% well-specified is that people should use the eol attribute together with text. Either text=auto eol=crlf or text=auto eol=lf or text eol=crlf or text eol=lf Older git versions did treat * text=auto * eol=crlf The same as * text eol=crlf Which did corrupt binary files. Never git versions treat * text=auto * eol=crlf as * text=auto eol=crlf in the sense that only auto-detected text files are converted, if they had not been commited with crlf before. In that sense I feel that the short form eol=crlf should be avoided > > I'm not sure one reads significantly easier than the other. I slightly > prefer the former because it has fewer conditions with multiple nested > entries, though. > -- > brian m. carlson (he/him or they/them) > Toronto, Ontario, CA