This change removes between 1 and 4 sed invocations per
completion
entered by the user. In the case of cat-file the 4
invocations per
completion can take a while on Cygwin; running these
replacements
directly within bash saves some time for the end user.
Signed-off-by: Shawn O. Pearce <spearce spearce.org>
---
contrib/completion/git-completion.bash | 14
+++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/contrib/completion/git-completion.bash
b/contrib/completion/git-completion.bash
index 74be651..f3be132 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
 -83,15
+83,15  __git_remotes ()
__git_complete_file ()
{
- local cur="${COMP_WORDS[COMP_CWORD]}"
+ local pfx ls ref cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in
?* )
- local pfx ls ref="$(echo "$cur" | sed
's,:.*$,,')"
- cur="$(echo "$cur" | sed 's,^.*:,,')"
+ ref="${cur%% }"
+ cur="${cur#*:}"
case "$cur" in
?*/*)
- pfx="$(echo "$cur" | sed
's,/[^/]*$,,')"
- cur="$(echo "$cur" | sed
's,^.*/,,')"
+ pfx="${cur%/*}"
+ cur="${cur##*/}"
ls="$ref:$pfx"
pfx="$pfx/"
;;
 -193,7
+193,7  _git_fetch ()
*)
case "$cur" in
* )
- cur=$(echo "$cur" | sed 's/^.*://')
+ cur="${cur#*:}"
COMPREPLY=($(compgen -W "$(__git_refs)" --
"$cur"))
;;
*)
 -287,7
+287,7  _git_push ()
git-push) remote="${COMP_WORDS[1]}" ;;
git) remote="${COMP_WORDS[2]}" ;;
esac
- cur=$(echo "$cur" | sed 's/^.*://')
+ cur="${cur#*:}"
COMPREPLY=($(compgen -W "$(__git_refs
"$remote")" -- "$cur"))
;;
*)
--
1.4.3.3.g9621
-
To unsubscribe from this list: send the line
"unsubscribe git" in
the body of a message to majordomo vger.kernel.org
More majordomo info at http://vge
r.kernel.org/majordomo-info.html
|