Re: Cygwin Git Performance
- Date: Tue, 21 May 2019 15:47:50 +0100
- From: Adam Dinwoodie <adam@xxxxxxxxxxxxx>
- Subject: Re: Cygwin Git Performance
On Tue, 21 May 2019 at 15:34, Nathan and Ila Reynolds wrote:
> I am not sure if this is the right mailing list. If not, please
> redirect me to the right place.
> I have Cygwin's git (2.21.0) and Git for Windows (2.21.0) installed on
> my Windows 10 machine. I run the following command with each binary
> "git push --all" on a simple 2 line change to 1 file. If I use Cygwin's
> git, then the operation takes almost 5 minutes. If I use Git for
> Windows, then the operation takes almost 20 seconds. I tried using
> --verbose to figure out why Cygwin's git is so slow but it does not
> reveal anything to me as to why. What can I do to figure out why
> Cygwin's git is so slow? I am hoping that we can get to the bottom of
> this and it can be fixed to help all users.
Re which mailing list to use: are you using the version of Cygwin Git
that gets installed when using Cygwin's setup-x86/setup-x86_64
installer? If so, you'll probably have better luck reporting on the
Cygwin mailing list per https://cygwin.com/lists.html. If it's
something you built yourself, it's less clear, because it depends
where things are going wrong. In either case, I'm the maintainer for
the Cygwin Git package, so I'm probably a good person to at least take
a first pass at the problem.
It is expected that Cygwin's Git is slower than Git for Windows, as
they're both running on the same hardware, operating system and file
system, but Cygwin has a heavier interface layer between the Git code
and the OS. However I'd expect that difference to be basically
unnoticable the vast majority of the time; 20 seconds to 5 minutes is
significantly more than I'd consider typical.
My immediate thoughts are around (a) PATH handling and (b) third-party
dependencies like what SSH library is being used. So I can rule those
out, can you give me (a) the standard Cygwin diagnostic package from
running "cygcheck -s -v -r > cygcheck.out" in a Cygwin terminal
(off-list, if you prefer), and (b) details of the remote repository
you're pushing to?