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

Re: [PATCH] bash completion: add basic support for git-reflog

From
SZEDER Gábor <szeder@ira.uka.de>
Date
Nov 22, 2010, 15:24 UTC
Message-ID
<20101122152409.GA7010@neumann>
In-Reply-To
<1290274368-3212-1-git-send-email-rctay89@gmail.com>
Hi,
On Sun, Nov 21, 2010 at 01:32:48AM +0800, Tay Ray Chuan wrote:
> Add basic completion for the three subcommands - show, expire, delete.
> Try completing refs for these too.

Heh, I've always thought reflog is plumbing, and that's why the completion script doesn't support it.

Show 23 quoted lines
> Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
> ---
>  contrib/completion/git-completion.bash |   16 ++++++++++++++++
>  1 files changed, 16 insertions(+), 0 deletions(-)
> 
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index f710469..4007ca1 100755
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1632,6 +1632,22 @@ _git_rebase ()
>  	__gitcomp "$(__git_refs)"
>  }
>  
> +_git_reflog ()
> +{
> +	local SUB_CMDS=(show delete expire)
> +	local cur="${COMP_WORDS[COMP_CWORD-1]}"
> +
> +	for val in ${SUB_CMDS[*]}; do
> +		if [[ "$val" == "$cur" ]]; then
> +			# this is a subcommand
> +			__gitcomp "$(__git_refs)"
> +			return

This only looks at the previous word on the command line, and leads to wrong behavior when an option is used:

  $ git reflog expire --verbose <TAB><TAB>
  delete   expire   show     

To prevent this you could use the __git_find_on_cmdline() helper function and follow how other completion functions use it.

Show 13 quoted lines
> +		fi
> +	done
> +
> +	__gitcomp "${SUB_CMDS[*]}"
> +}
> +
>  __git_send_email_confirm_options="always never auto cc compose"
>  __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all"
>  
> -- 
> 1.7.3.2.496.g9c54
> 
> 
Previous: Tay Ray ChuanNext: Tay Ray Chuan
Message 2 of 5 in “bash completion: add basic support for git-reflog”
  1. bash completion: add basic support for git-reflogTay Ray Chuan, Nov 20, 2010
  2. SZEDER GáborNov 22, 2010
  3. Tay Ray ChuanNov 22, 2010
  4. bash completion: add basic support for git-reflogTay Ray Chuan, Nov 22, 2010
  5. Jonathan NiederNov 22, 2010

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.