From: Stephen Bash Date: Wed, 25 May 2011 18:06:20 GMT Subject: Re: Git EOL Normalization Message-ID: <20898727.40273.1306346780207.JavaMail.root@mail.hq.genarts.com> In-Reply-To: ----- Original Message ----- > From: "Dmitry Potapov" > Sent: Wednesday, May 25, 2011 1:58:33 PM > Subject: Re: Git EOL Normalization > > >  1) what is the actual text file detection algorithm? > >  2) what is the autocrlf LF/CRLF detection algorithm? > >  3) how does autocrlf handle mixed line endings? (either in the > >  working copy or repo) > > Currently, the following heuristics are used: > > A file is considered as text if it does not have '\0' or a bare CR, > and the number of non-printable characters is less than 1 in 128. > > Non-printable characters are DEL (127) and anything less than 32 > except CR, LF, BS, HT, ESC and FF. > > Also, to avoid problems with autocrlf=true when someone has already > put a text file with CRLF, CRLF->LF conversion happens only if the tracked > file in the index does not have any CR. > > PS I wrote this mostly from my memory, so I could miss some detail. Thanks! This is very helpful. Stephen