Re: [PATCH] Speedup bash completion loading
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Oct 5, 2009, 15:25 UTC
- Message-ID
- <20091005152504.GE9261@spearce.org>
- In-Reply-To
- <1254737039-10404-1-git-send-email-kirr@mns.spb.ru>
Kirill Smelkov <kirr@mns.spb.ru> 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.
Show 31 quoted lines
> 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.