On Wed, Jul 23, 2008 at 07:49:20AM +0200, Steffen Prohaska wrote: > > On Jul 23, 2008, at 3:31 AM, Johannes Schindelin wrote: > > > > >- if ((action == CRLF_BINARY) || !auto_crlf || !len) > >+ if ((action == CRLF_BINARY) || (!auto_crlf && action < 0) || !len) > > I think we should strictly follow the documentation, so this should read > > + if ((action == CRLF_BINARY) || (!auto_crlf && action != > CRLF_INPUT) || !len) Well, your expression is correct if we choose to strictly follow to what the current documentation says, but it is not well written in this place, and, more importantly, I don't see any use case where you would want to set crlf=input in .gitattributes, because it is shared among users on different platforms. What you want to specify in it is whether a file is text or binary. If crlf is set, it means a text file; if unset, it is a binary file. Regardless of what autocrlf value, I don't see why a text file should be checked in with CRs. So, Dscho's patch makes more sense to me. This requires correction to the documentation though: diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt index d7b4114..448857b 100644 --- a/Documentation/gitattributes.txt +++ b/Documentation/gitattributes.txt @@ -99,9 +99,9 @@ This attribute controls the line-ending convention. Set:: Setting the `crlf` attribute on a path is meant to mark - the path as a "text" file. 'core.autocrlf' conversion - takes place without guessing the content type by - inspection. + the path as a "text" file. Line endings in a text file + are converted to LF upon checkin, and if 'core.autocrlf' + is true then to CRLF upon checkout. Unset:: Dmitry -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html