From: Shawn O. Pearce Date: Mon, 05 Oct 2009 15:25:04 GMT Subject: Re: [PATCH] Speedup bash completion loading Message-ID: <20091005152504.GE9261@spearce.org> In-Reply-To: <1254737039-10404-1-git-send-email-kirr@mns.spb.ru> Kirill Smelkov wrote: > I've tracked down that the most time is spent warming up merge_strategy, > all_command & porcelain_command caches. Nak. The problem is, during completion when we modify the value the change doesn't persist beyond the current completion invocation. Thus there is no value in the cache, so every completion attempt which needs the list has to rerun the command to compute it. > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash > index 2c2a0d4..4c09d41 100755 > --- a/contrib/completion/git-completion.bash > +++ b/contrib/completion/git-completion.bash > @@ -340,7 +340,6 @@ __git_merge_strategies () > }' > } > __git_merge_strategylist= > -__git_merge_strategylist=$(__git_merge_strategies 2>/dev/null) > > __git_complete_file () > { > @@ -505,7 +504,6 @@ __git_all_commands () > done > } > __git_all_commandlist= > -__git_all_commandlist="$(__git_all_commands 2>/dev/null)" > > __git_porcelain_commands () > { > @@ -596,7 +594,6 @@ __git_porcelain_commands () > done > } > __git_porcelain_commandlist= > -__git_porcelain_commandlist="$(__git_porcelain_commands 2>/dev/null)" > > __git_aliases () > { > -- > 1.6.5.rc2.17.gdbc1b > -- Shawn.