git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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 ;-)
Previous: John KeepingNext: Felipe Contreras
Message 14 of 20 in “completion: reorg and performance improvements”
  1. 0/7 completion: reorg and performance improvementsFelipe Contreras, Apr 10, 2013
  2. 1/7 completion: trivial test improvementFelipe Contreras, Apr 10, 2013
  3. 2/7 completion: get rid of empty COMPREPLY assignmentsFelipe Contreras, Apr 10, 2013
  4. Eric SunshineApr 10, 2013
  5. 3/7 completion: add new __gitcompadd helperFelipe Contreras, Apr 10, 2013
  6. Junio C HamanoApr 12, 2013
  7. Felipe ContrerasApr 12, 2013
  8. Junio C HamanoApr 12, 2013
  9. 4/7 completion: add __gitcomp_nl testsFelipe Contreras, Apr 10, 2013
  10. 5/7 completion: get rid of compgenFelipe Contreras, Apr 10, 2013
  11. Eric SunshineApr 10, 2013
  12. Felipe ContrerasApr 10, 2013
  13. John KeepingApr 10, 2013
  14. Junio C HamanoApr 12, 2013
  15. 6/7 completion: get rid of __gitcomp_1Felipe Contreras, Apr 10, 2013
  16. Eric SunshineApr 10, 2013
  17. John KeepingApr 10, 2013
  18. Eric SunshineApr 10, 2013
  19. 7/7 completion: small optimizationFelipe Contreras, Apr 10, 2013
  20. Junio C HamanoApr 12, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.