From: Stephen Boyd <bebarino@gmail.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Kirill Smelkov <kirr@mns.spb.ru>,
Sverre Rabbelier <srabbelier@gmail.com>,
Junio C Hamano <junio@pobox.com>,
"Shawn O. Pearce" <spearce@spearce.org>,
git@vger.kernel.org
Subject: Re: [PATCH] Speed up bash completion loading
Date: Fri, 13 Nov 2009 12:43:31 -0800 [thread overview]
Message-ID: <4AFDC4F3.1050607@gmail.com> (raw)
In-Reply-To: <20091113090343.GA5355@progeny.tock>
Jonathan Nieder wrote:
> On my slow laptop (P3 600MHz), system-wide bash completions take
> too much time to load (> 2s), and a significant fraction of this
> time is spent loading git-completion.bash:
>
[...]
> Suggested-by: Kirill Smelkov <kirr@mns.spb.ru>
> Cc: Shawn O. Pearce <spearce@spearce.org>
> Cc: Stephen Boyd <bebarino@gmail.com>
> Cc: Sverre Rabbelier <srabbelier@gmail.com>
> Cc: Junio C Hamano <junio@pobox.com>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> ---
I was under the impression that setting variables during completion
meant they were lost at the end of the completion cycle. So to be safe I
put a 'sleep 5' in __git_list_porcelain_commands() and it only stalled
me once :-)
I see a small problem, but it can be fixed in another patch. git merge
-s <TAB><TAB> the first time when you're not in a git directory will
make git merge -s <TAB><TAB> after never complete correctly even in a
git directory. I guess this become more serious if git isn't in your
path initially and you do git <TAB><TAB> and then git becomes part of
your path and you try again. Here you lose porcelain completion. This is
probably never going to happen though, right?
Plus it seems that __git_all_commands is computed twice if I git
<TAB><TAB> and then git help <TAB><TAB> after. Can that be avoided?
Squashing this on top fixes the two typos you mentioned.
---->8----
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 7088ec7..6817953 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1082,7 +1082,7 @@ _git_help ()
;;
esac
__git_compute_all_commands
- __gitcomp "__git_all_commands
+ __gitcomp "$__git_all_commands
attributes cli core-tutorial cvs-migration
diffcore gitk glossary hooks ignore modules
repository-layout tutorial tutorial-2
@@ -1541,7 +1541,7 @@ _git_config ()
local pfx="${cur%.*}."
cur="${cur#*.}"
__git_compute_all_commands
- __gitcomp "__git_all_commands" "$pfx" "$cur"
+ __gitcomp "$__git_all_commands" "$pfx" "$cur"
return
;;
remote.*.*)
next prev parent reply other threads:[~2009-11-13 20:43 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-11 9:34 excerpts from tomorrow's "What's cooking" draft Junio C Hamano
2009-11-11 16:33 ` Ben Walton
2009-11-11 17:07 ` Johan Herland
2009-11-11 17:57 ` Sverre Rabbelier
2009-11-11 18:45 ` Daniel Barkalow
2009-11-15 2:07 ` Sverre Rabbelier
2009-11-15 2:49 ` Daniel Barkalow
2009-11-11 22:08 ` ks/precompute-completion Jonathan Nieder
2009-11-13 6:40 ` ks/precompute-completion Stephen Boyd
2009-11-13 7:06 ` ks/precompute-completion Jonathan Nieder
2009-11-13 7:12 ` ks/precompute-completion Stephen Boyd
2009-11-13 8:50 ` [PATCH] Speed up bash completion loading Jonathan Nieder
2009-11-13 9:03 ` Jonathan Nieder
2009-11-13 10:29 ` Jonathan Nieder
2009-11-13 20:43 ` Stephen Boyd [this message]
2009-11-14 10:35 ` Jonathan Nieder
2009-11-14 11:01 ` Jonathan Nieder
2009-11-14 14:43 ` SZEDER Gábor
2009-11-14 19:33 ` Jonathan Nieder
2009-11-14 23:46 ` Stephen Boyd
2009-11-15 6:50 ` Jonathan Nieder
2009-11-15 9:05 ` Junio C Hamano
2009-11-15 10:29 ` [PATCH v2] " Jonathan Nieder
2009-11-16 1:55 ` Shawn O. Pearce
2009-11-16 8:28 ` Stephen Boyd
2009-11-18 0:49 ` [PATCH v3] " Jonathan Nieder
2009-11-18 0:59 ` Shawn O. Pearce
2009-11-11 18:42 ` excerpts from tomorrow's "What's cooking" draft Nicolas Sebrecht
2009-11-11 19:50 ` Nicolas Pitre
2009-11-11 21:07 ` Petr Baudis
2009-11-11 21:19 ` Nicolas Pitre
2009-11-11 21:26 ` Nicolas Sebrecht
2009-11-11 21:42 ` Petr Baudis
2009-11-11 22:04 ` Nicolas Pitre
2009-11-11 22:24 ` [PATCH] give priority to progress messages Nicolas Pitre
2009-11-11 18:54 ` excerpts from tomorrow's "What's cooking" draft Jakub Narebski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4AFDC4F3.1050607@gmail.com \
--to=bebarino@gmail.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=junio@pobox.com \
--cc=kirr@mns.spb.ru \
--cc=spearce@spearce.org \
--cc=srabbelier@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).