From: Felipe Contreras Date: Fri, 25 May 2012 10:01:25 GMT Subject: Re: [PATCH 2/2] completion: split __git_ps1 into a separate script Message-ID: In-Reply-To: <87ehq8its8.fsf@thomas.inf.ethz.ch> On Fri, May 25, 2012 at 9:50 AM, Thomas Rast wrote: > SZEDER Gábor writes: > >> On Thu, May 24, 2012 at 11:36:45PM -0400, Ted Pavlic wrote: >>> > You mean a real git command, which does the same as __gitdir()?  I >>> > don't like that, because it will always require 2 fork()s and an >>> > exec() and would be slow on Windows. >>> >>> Interesting. I guess I didn't realize bash completion was an issue for most >>> Windows users. Is it? >> >> It is.  Emulating fork() and exec() is very expensive, so every >> subshell, external command, or especially git command in a command >> substitution costs dearly.  And the completion script uses many git >> commands and even more subshells. >> >> Case in point is __git_ps1() and __gitdir().  There are scenarios >> where displaying the git-specific bash prompt takes more than 400ms on >> Windows, while displaying the same prompt takes only about 26ms on >> Linux on the same hardware. >> >>   http://thread.gmane.org/gmane.comp.version-control.git/197432 > > Why not make a git builtin command that figures out everything that > __git_ps1 does?  Perhaps in a format that can be eval'd and processed to > the user's taste. That is what I was thinking. -- Felipe Contreras