Re: [PATCH v3 5/7] completion: get rid of compgen
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 12, 2013, 18:06 UTC
- Message-ID
- <7vhajbei8o.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1365577077-12648-6-git-send-email-felipe.contreras@gmail.com>
Felipe Contreras <felipe.contreras@gmail.com> writes:
> Here are some numbers filtering N amount of words:
Nice table. "N amount of words" sounded somewhat funny to me, but I am not a native.
Show 25 quoted lines
> ... > == 1000 == > original: 0.012s > new: 0.011s > == 10000 == > original: 0.056s > new: 0.066s > == 100000 == > original: 2.669s > new: 0.622s > > If the results are not narrowed: > ... > == 1000 == > original: 0.020s > new: 0.015s > == 10000 == > original: 0.101s > new: 0.355s > == 100000 == > original: 2.850s > new: 31.941s > > So, unless 'git checkout <tab>' usually gives you more than 100000 > results, you'll get an improvement :)
Nice numbers. I think you meant 10000 not 100000 here.
Show 16 quoted lines
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 90b54ab..d8009f5 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -197,11 +197,16 @@ fi
>
> __gitcompadd ()
> {
> - COMPREPLY=($(compgen -W "$1" -P "$2" -S "$4" -- "$3"))
> + local i=0
> + for x in $1; do
> + if [[ "$x" == "$3"* ]]; then
> + COMPREPLY[i++]="$2$x$4"
> + fi
> + done
> }Nice; can't be simpler than that ;-)