Subject: Re: [RFC/PATCH 0/1] cygwin: Remove the Win32 l/stat() functions

From: Mark Levedahl <[email-masked]>
Date: Wed, 26 Jun 2013 22:37:06 -0400

On 06/26/2013 10:19 AM, Torsten Bögershausen wrote:
> On 2013-06-25 23.18, Junio C Hamano wrote:
>> Johannes Sixt <[email-masked]> writes:
>>
>>> Some context: This is about a patch by Ramsay that removes the
>>> "schizophrenic lstat" hack for Cygwin. Junio, can you please queue that
>>> patch in pu?
>> Sure.  Thanks.
> First of all,
> thanks for the work.
>
> Here some "benchmark" results,
> (The test run of the test suite did the same amout of time).
>
> But:
> git status -uno in real life takes double the time,
> git 1.8.3 compared against "pu with the vanilla l/stat"
>     
>      1 second ->  2 seconds on linux kernel
> 0.2 seconds -> 0.4 seconds on git.git
>
> Do we have any known problems with the current implementation ?
> Does speed matter ?
>
> One vote to keep the special cygwin functions.
> (And have a look how to improve the core.filemode)
>
> /Torsten
>
>
There have been threads on the cygwin mailing lists for at least a 
decade looking to speed up cygwin's posix stat / lstat (and fork). If 
improvement were merely difficult, it would have been done long ago. As 
git cares about things like execute bits, file / repository permissions, 
and soft links, whatever stat / lstat git uses needs to fully support 
those under cygwin, either by using what cygwin provides or providing a 
complete replacement. Note my other reply - with Ramsay's patch I can 
complete the test suite (except for t0008.sh that has a known hang) 
while without it I find the test suite randomly (unrepeatable) hangs in 
many tests. So, this stat/lstat replacement is at least implicated in 
current troubles.

Mark