# [PATCH v2 resend] bash completion: add basic support for git-reflog

2 messages from 2010-12-16 to 2010-12-16. Participants: Tay Ray Chuan, Jonathan Nieder.
Thread: https://gitlist.dev/t/26081

## Tay Ray Chuan, 2010-12-16 06:56

Subject: [PATCH v2 resend] bash completion: add basic support for git-reflog
Message-ID: <20101216145608.000004df@unknown>
URL: https://gitlist.dev/e/20101216145608.000004df%40unknown

```
"Promote" the reflog command out of plumbing, so that we now run
completion for it. After all, it's listed under porcelain (ancillary),
and we do run completion for those commands.

Add basic completion for the three subcommands - show, expire, delete.
Try completing refs for these too.

Helped-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
---

resend note:
This didn't seem to have been picked up. FYI, Johnathan
made a comment, but it was non-blocking, so I didn't change anything.

Changed from v1: 
 - picked up Gábor's suggestion on using __git_find_on_cmdline()
   to correctly handle situations where subcommands are used with dashed
   options.
 - don't "hide" reflog anymore - run completion for it too.

Gábor: hmm, it really seems that reflog is treated as plumbing - no completion
is done for it. Even get-tar-commit-id (I've never used this before) is treated
better than reflog. Shall do something about it!

 contrib/completion/git-completion.bash |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index f710469..6732b1d 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -735,7 +735,6 @@ __git_list_porcelain_commands ()
 		quiltimport)      : import;;
 		read-tree)        : plumbing;;
 		receive-pack)     : plumbing;;
-		reflog)           : plumbing;;
 		remote-*)         : transport;;
 		repo-config)      : deprecated;;
 		rerere)           : plumbing;;
@@ -1632,6 +1631,18 @@ _git_rebase ()
 	__gitcomp "$(__git_refs)"
 }
 
+_git_reflog ()
+{
+	local subcommands="show delete expire"
+	local subcommand="$(__git_find_on_cmdline "$subcommands")"
+
+	if [ -z "$subcommand" ]; then
+		__gitcomp "$subcommands"
+	else
+		__gitcomp "$(__git_refs)"
+	fi
+}
+
 __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.493.g2b058

```

## Jonathan Nieder, 2010-12-16 07:15

Subject: Re: [PATCH v2 resend] bash completion: add basic support for git-reflog
Message-ID: <20101216071528.GA3753@burratino>
URL: https://gitlist.dev/e/20101216071528.GA3753%40burratino
In-Reply-To: <20101216145608.000004df@unknown>

```
Tay Ray Chuan wrote:

> "Promote" the reflog command out of plumbing, so that we now run
> completion for it. After all, it's listed under porcelain (ancillary),
> and we do run completion for those commands.

Good point.

[...]
> Even get-tar-commit-id (I've never used this before) is treated
> better than reflog.

It's handy from time to time. :)

Thanks, and sorry to miss the point before.  The patch looks good.

```
