Re: [PATCH 2/2] completion: split __git_ps1 into a separate script
- From
Thomas Rast <trast@inf.ethz.ch>
- Date
- May 25, 2012, 07:50 UTC
- Message-ID
- <87ehq8its8.fsf@thomas.inf.ethz.ch>
- In-Reply-To
- <20120525073506.GD2052@goldbirke>
SZEDER Gábor <szeder@ira.uka.de> writes:
Show 19 quoted lines
> 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.
--
Thomas Rast
trast@{inf,student}.ethz.ch