threads / patch / 26081

v2bash completion: add basic support for git-reflog

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

## tl;dr

2 messages between Dec 16, 2010 and Dec 16, 2010. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Tay Ray Chuan· Dec 16, 2010, 06:56 UTC · lore

"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(-)
Show changes to contrib/completion/git-completion.bash +12 −1
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· Dec 16, 2010, 07:15 UTC · re: Tay Ray Chuan · lore

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

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.

← back to recent threads