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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.