This is pretty trivial, but I'm a lazy typist.
Is it possible to alias 'g' to git via git config, instead of via bash? If I do a plain bash alias then none of the nice autocompletion from git-contrib work with 'g'.
- Rob
This is pretty trivial, but I'm a lazy typist.
Is it possible to alias 'g' to git via git config, instead of via bash? If I do a plain bash alias then none of the nice autocompletion from git-contrib work with 'g'.
- Rob
Re: alias g to git in .gitconfig?
Rob Sanheim <rsanheim@gmail.com> wrote:
> This is pretty trivial, but I'm a lazy typist. > > Is it possible to alias 'g' to git via git config, instead of via > bash? If I do a plain bash alias then none of the nice autocompletion > from git-contrib work with 'g'.
No, you'll need to alias 'g' to git in bash, and then if you still want completion you'll need to also register the compgen to call _git completion routine. Its two lines:
alias g=git complete -o default -o nospace -F _git g
-- Shawn.
Re: alias g to git in .gitconfig?
Thanks, that did it.
On Thu, Oct 2, 2008 at 11:10 PM, Shawn O. Pearce <spearce@spearce.org> wrote:
> Rob Sanheim <rsanheim@gmail.com> wrote: >> This is pretty trivial, but I'm a lazy typist. >> >> Is it possible to alias 'g' to git via git config, instead of via >> bash? If I do a plain bash alias then none of the nice autocompletion >> from git-contrib work with 'g'. > > No, you'll need to alias 'g' to git in bash, and then if you still > want completion you'll need to also register the compgen to call > _git completion routine. Its two lines: > > alias g=git > complete -o default -o nospace -F _git g > > -- > Shawn. >
[FYI PATCH] bash completion: alias 'g' to 'git' with completion
---
Rob Sanheim wrote:
> On Thu, Oct 2, 2008 at 11:10 PM, Shawn O. Pearce <spearce@spearce.org> wrote: > > No, you'll need to alias 'g' to git in bash, and then if you still > > want completion you'll need to also register the compgen to call > > _git completion routine. Its two lines: > > > > alias g=git > > complete -o default -o nospace -F _git g > > Thanks, that did it.
Actually it's not enough, you need to teach fetch, pull and push to recognise the new alias too, as in this patch. I do wonder if there's a better approach to those functions however, so that the "obvious" fix suggested by Shawn would work.
- Thomas
contrib/completion/git-completion.bash | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 7284c3b..547e735 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -789,7 +789,7 @@ _git_fetch () git-fetch*,1) __gitcomp "$(__git_remotes)" ;; - git,2) + git,2|g,2) __gitcomp "$(__git_remotes)" ;; *) @@ -1053,7 +1053,7 @@ _git_pull () git-pull*,1) __gitcomp "$(__git_remotes)" ;; - git,2) + git,2|g,2) __gitcomp "$(__git_remotes)" ;; *) @@ -1075,7 +1075,7 @@ _git_push () git-push*,1) __gitcomp "$(__git_remotes)" ;; - git,2) + git,2|g,2) __gitcomp "$(__git_remotes)" ;; *) @@ -1717,6 +1717,7 @@ _gitk () } complete -o default -o nospace -F _git git +complete -o default -o nospace -F _git g complete -o default -o nospace -F _gitk gitk # The following are necessary only for Cygwin, and only are needed
-- 1.6.0.2.771.g3967
[PATCH] bash: remove fetch, push, pull dashed form leftovers
We don't provide complation for git-commands in dashed form anymore, so there is no need to keep those cases.
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> ---
On Fri, Oct 03, 2008 at 06:35:05PM +0200, Thomas Rast wrote:
> Actually it's not enough, you need to teach fetch, pull and push to > recognise the new alias too, as in this patch. I do wonder if there's > a better approach to those functions however, so that the "obvious" > fix suggested by Shawn would work.
Maybe something like this?
contrib/completion/git-completion.bash | 36 ++++++++------------------------ 1 files changed, 9 insertions(+), 27 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 95c81f9..5a4e8c8 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -784,14 +784,9 @@ _git_fetch () { local cur="${COMP_WORDS[COMP_CWORD]}" - case "${COMP_WORDS[0]},$COMP_CWORD" in - git-fetch*,1) + if [ "$COMP_CWORD" = 2 ]; then __gitcomp "$(__git_remotes)" - ;; - git,2) - __gitcomp "$(__git_remotes)" - ;; - *) + else case "$cur" in *:*) local pfx="" @@ -810,8 +805,7 @@ _git_fetch () __gitcomp "$(__git_refs2 "$remote")" ;; esac - ;; - esac + fi } _git_format_patch () @@ -1051,36 +1045,25 @@ _git_pull () { local cur="${COMP_WORDS[COMP_CWORD]}" - case "${COMP_WORDS[0]},$COMP_CWORD" in - git-pull*,1) - __gitcomp "$(__git_remotes)" - ;; - git,2) + if [ "$COMP_CWORD" = 2 ]; then __gitcomp "$(__git_remotes)" - ;; - *) + else local remote case "${COMP_WORDS[0]}" in git-pull) remote="${COMP_WORDS[1]}" ;; git) remote="${COMP_WORDS[2]}" ;; esac __gitcomp "$(__git_refs "$remote")" - ;; - esac + fi } _git_push () { local cur="${COMP_WORDS[COMP_CWORD]}" - case "${COMP_WORDS[0]},$COMP_CWORD" in - git-push*,1) - __gitcomp "$(__git_remotes)" - ;; - git,2) + if [ "$COMP_CWORD" = 2 ]; then __gitcomp "$(__git_remotes)" - ;; - *) + else case "$cur" in *:*) local remote @@ -1104,8 +1087,7 @@ _git_push () __gitcomp "$(__git_refs)" ;; esac - ;; - esac + fi } _git_rebase ()
-- 1.6.0.2.474.ga74ad.dirty
Re: [PATCH] bash: remove fetch, push, pull dashed form leftovers
SZEDER Gábor wrote:
> We don't provide complation for git-commands in dashed form anymore, > so there is no need to keep those cases.
[...]
> On Fri, Oct 03, 2008 at 06:35:05PM +0200, Thomas Rast wrote: > > I do wonder if there's a better approach to those functions > > however, so that the "obvious" fix suggested by Shawn would work. > > Maybe something like this?
That's indeed much simpler and better. FWIW,
Tested-by: Thomas Rast <trast@student.ethz.ch>
--
Thomas Rast
trast@{inf,student}.ethz.ch