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

Re: How to setup bash completion for alias of git command

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Jan 20, 2013, 11:14 UTC
Message-ID
<20130120111424.GG16339@elie.Belkin>
In-Reply-To
<CACSwcnQu8Rx83mcGYR6NGzEhoreNR6DfiK876LF7pa9PGm30JA@mail.gmail.com>
Hi Ping,
Ping Yin wrote:
Show 10 quoted lines
> Following setup works for me  in ubuntu (10.04,11.04) for a long time
>
> alias gtlg='git log'
> complete -o default -o nospace -F _git_log gtlg
>
> However, in debian (testing, wheezy), it doesn't work
>
> $ gtlg or<TAB>
> gtlg or-bash: [: 1: unary operator expected
> -bash: [: 1: unary operator expected

Yes, I can reproduce this. "git bisect" tells me it was introduced by v1.7.6-rc0~65^2~4 (completion: remove unnecessary _get_comp_words_by_ref() invocations, 2011-04-28). Since then, Felipe has done work to make reusing subcommand completion easy again, so you can do

	__git_complete gtlg _git_log

One complication: on some systems, including Ubuntu 13.04, git's bash completion script is installed to

	/usr/share/bash-completion/completions/git

and sourced on the fly when completing commands starting with "git" instead of right away from /etc/bash_completion. On these systems, the "__git_complete" function would not be usable right away from your .bashrc file. I think we should fix this, for example by moving the function to a separate

	$(git --exec-path)/git-bashrc-functions
library.

Thanks for reporting, Jonathan

Previous: Ping YinNext: Ping Yin
Message 3 of 4 in “How to setup bash completion for alias of git command”
  1. Ping YinJan 12, 2013
  2. Ping YinJan 13, 2013
  3. Jonathan NiederJan 20, 2013
  4. Ping YinJan 21, 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.