{"thread":{"id":"51142","subject":"Cygwin Git Performance","startedAt":"2019-05-21T14:34:36Z","lastAt":"2019-05-21T21:06:04Z","messageCount":3,"participants":["Nathan and Ila Reynolds","Adam Dinwoodie","Jeff Hostetler"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"375999","messageId":"01cf52cb-7e90-efde-a06c-f0413f9efc8a@gmail.com","threadId":"51142","inReplyTo":null,"subject":"Cygwin Git Performance","fromName":"Nathan and Ila Reynolds","fromEmail":"nathanila@gmail.com","sentAt":"2019-05-21T14:34:31Z","receivedAt":"2019-05-21T14:34:36Z","isPatch":false,"sender":{"key":"nathanila@gmail.com","avatar":null},"body":"I am not sure if this is the right mailing list.  If not, please \nredirect me to the right place.\n\nI have Cygwin's git (2.21.0) and Git for Windows (2.21.0) installed on \nmy Windows 10 machine.  I run the following command with each binary \n\"git push --all\" on a simple 2 line change to 1 file.  If I use Cygwin's \ngit, then the operation takes almost 5 minutes.  If I use Git for \nWindows, then the operation takes almost 20 seconds.  I tried using \n--verbose to figure out why Cygwin's git is so slow but it does not \nreveal anything to me as to why.  What can I do to figure out why \nCygwin's git is so slow? I am hoping that we can get to the bottom of \nthis and it can be fixed to help all users.\n\n-- \n-Nathan\n\n"},{"id":"376000","messageId":"CA+kUOa=N5GuKoLjNh=8JkTBnpcdxQ2-OLZbOFAGUhBkZ9dVH4A@mail.gmail.com","threadId":"51142","inReplyTo":"01cf52cb-7e90-efde-a06c-f0413f9efc8a@gmail.com","subject":"Re: Cygwin Git Performance","fromName":"Adam Dinwoodie","fromEmail":"adam@dinwoodie.org","sentAt":"2019-05-21T14:47:50Z","receivedAt":"2019-05-21T14:48:30Z","isPatch":false,"sender":{"key":"adam@dinwoodie.org","avatar":"https://avatars.githubusercontent.com/u/1397507?v=4"},"body":"On Tue, 21 May 2019 at 15:34, Nathan and Ila Reynolds wrote:\n>\n> I am not sure if this is the right mailing list.  If not, please\n> redirect me to the right place.\n>\n> I have Cygwin's git (2.21.0) and Git for Windows (2.21.0) installed on\n> my Windows 10 machine.  I run the following command with each binary\n> \"git push --all\" on a simple 2 line change to 1 file.  If I use Cygwin's\n> git, then the operation takes almost 5 minutes.  If I use Git for\n> Windows, then the operation takes almost 20 seconds.  I tried using\n> --verbose to figure out why Cygwin's git is so slow but it does not\n> reveal anything to me as to why.  What can I do to figure out why\n> Cygwin's git is so slow? I am hoping that we can get to the bottom of\n> this and it can be fixed to help all users.\n\nRe which mailing list to use: are you using the version of Cygwin Git\nthat gets installed when using Cygwin's setup-x86/setup-x86_64\ninstaller? If so, you'll probably have better luck reporting on the\nCygwin mailing list per https://cygwin.com/lists.html. If it's\nsomething you built yourself, it's less clear, because it depends\nwhere things are going wrong. In either case, I'm the maintainer for\nthe Cygwin Git package, so I'm probably a good person to at least take\na first pass at the problem.\n\nIt is expected that Cygwin's Git is slower than Git for Windows, as\nthey're both running on the same hardware, operating system and file\nsystem, but Cygwin has a heavier interface layer between the Git code\nand the OS. However I'd expect that difference to be basically\nunnoticable the vast majority of the time; 20 seconds to 5 minutes is\nsignificantly more than I'd consider typical.\n\nMy immediate thoughts are around (a) PATH handling and (b) third-party\ndependencies like what SSH library is being used. So I can rule those\nout, can you give me (a) the standard Cygwin diagnostic package from\nrunning \"cygcheck -s -v -r > cygcheck.out\" in a Cygwin terminal\n(off-list, if you prefer), and (b) details of the remote repository\nyou're pushing to?\n\nCheers,\n\nAdam\n"},{"id":"376015","messageId":"5d06cf4a-c29f-335f-52f9-c6c35369b673@jeffhostetler.com","threadId":"51142","inReplyTo":"01cf52cb-7e90-efde-a06c-f0413f9efc8a@gmail.com","subject":"Re: Cygwin Git Performance","fromName":"Jeff Hostetler","fromEmail":"git@jeffhostetler.com","sentAt":"2019-05-21T21:06:01Z","receivedAt":"2019-05-21T21:06:04Z","isPatch":false,"sender":{"key":"git@jeffhostetler.com","avatar":null},"body":"\n\nOn 5/21/2019 10:34 AM, Nathan and Ila Reynolds wrote:\n> I am not sure if this is the right mailing list.  If not, please \n> redirect me to the right place.\n> \n> I have Cygwin's git (2.21.0) and Git for Windows (2.21.0) installed on \n> my Windows 10 machine.  I run the following command with each binary \n> \"git push --all\" on a simple 2 line change to 1 file.  If I use Cygwin's \n> git, then the operation takes almost 5 minutes.  If I use Git for \n> Windows, then the operation takes almost 20 seconds.  I tried using \n> --verbose to figure out why Cygwin's git is so slow but it does not \n> reveal anything to me as to why.  What can I do to figure out why \n> Cygwin's git is so slow? I am hoping that we can get to the bottom of \n> this and it can be fixed to help all users.\n> \n\n\nYou might try turning on GIT_TRACE_PERFORMANCE [1] and see if that\nshows any differences.\n\nIf you can install 2.22.0-rc* versions of both, you can turn on\nGIT_TR2_PERF [2] and some additional details.\n\nIf your repo is very large, it may be due to some Windows file system\noptimizations present in the Git for Windows version.\n\n[1] https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables\n[2] \nhttps://github.com/git/git/blob/master/Documentation/technical/api-trace2.txt#L80\n\n\nHope that helps,\nJeff\n"}]}