On Mon, Aug 08, 2016 at 11:29:26AM -0400, Jeff King wrote: > On Mon, Aug 08, 2016 at 05:05:07PM +0200, Johannes Schindelin wrote: > > > I remember that you did a ton of work on t0027. Now I see problems, and > > not only that the entire script now takes a whopping 4 minutes 20 seconds > > to run on my high-end Windows machine. > > > > It appears that t0027 fails randomly for me, in seemingly random places. > > Sometimes all 1388 cases pass. Sometimes "29 - commit NNO files crlf=true > > attr=auto LF" fails. Sometimes it is "24 - commit NNO files crlf=false > > attr=auto LF". Sometimes it is "114 - commit NNO files crlf=false > > attr=auto LF", and sometimes "111 - commit NNO files attr=auto aeol=lf > > crlf=false CRLF_mix_LF". > > > > When I run it with -i -v -x --tee, it passes every single time (taking > > over 5 minutes, just to make things worse)... > > > > Any idea about any possible races? > > Try: > > https://github.com/peff/git/blob/meta/stress > > which you can run as "sh /path/to/stress t0027" in the top-level of your > git repository. I got failure within about 30 seconds on t0027 (though 5 > minutes? Yeesh. It runs in 9s on my laptop. I weep for you). > > The verbose output is not very exciting, though: > > expecting success: > check_warning "$lfwarn" ${pfx}_LF.err > > --- NNO_attr_auto_aeol_crlf_false_LF.err.expect 2016-08-08 15:26:37.061701392 +0000 > +++ NNO_attr_auto_aeol_crlf_false_LF.err.actual 2016-08-08 15:26:37.061701392 +0000 > @@ -1 +0,0 @@ > -warning: LF will be replaced by CRLF > not ok 114 - commit NNO files crlf=false attr=auto LF (I realized that t0027 is not yet self-explaining, I have it on my list) NNO_attr_auto_aeol_crlf_false_LF means: NNO: "Not NOrmalized" A file had been commited with CRLF in the repo attr_auto: .gitattributes has "* text=auto" aeol_eol .gitattributes has "eol=crlf" crlf_false git config core.autocrlf = false LF We commit a file with LF line endings. This should happend: - The file is commited "as is", with LF line endings. - While commiting, git should print the warning - "warning: LF will be replaced by CRLF" to stderr - stderr is piped (redirected) into NNO_attr_auto_aeol_crlf_false_LF.err - we grep for "will be replaced by" in xx.err and pipe it into xx.err.actual The rest is test_cmp, this is what you see. The warning is missing, but should be there: The file has LF, and after commit and a new checkout these LF will be convertet into CRLF. So why isn't the warning there (but here on my oldish machines) -- 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