Kirill Smelkov <kirr@xxxxxxxxxx> 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. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html