SZEDER Gábor <[email protected]> writes:
>> It is somewhat annoying that "git diff gi<TAB>" stops at expanding
>> it to "git diff git" and then upon another "git diff git<TAB>"
>> offers tags whose names begin with "git" (e.g. gitgui-0.10.0) but
>> the pathname git.c is not included in the choices. My wish was to
>> take the union in such a fairly limited case. I tend to agree with
>> you that "git diff <TAB>" that expands to all refs and pathnames
>> would be useless, but so is expansion to all pathnames (or refnames
>> for that matter).
>
> ... or trying to complete a branch name starting with a 'v', and then
> getting all the vx.y.z tags.
>
> If you know you want git.c, then you can force filename completion
> either by entering "--" before hitting tab...
Yes, that is exactly why I said "the current completion code already
works better than reasonably well, at least for me" in the
concluding part of my message.
Regarding that rr/complete-difftool topic, let's revert the tip 2
commits (the "ls-tree, archive and show" one, and the follow-up
resurrection of __git_complete_file) with this:
Revert 77c1305 and 3c3b46b
As explained by SZEDER Gábor in $gmane/226272, git_complete_file
helper is about completing <tree-ish>, taking <commit> at the tips
of refs and also understanding <tree-ish>:<path> notation, and
changing "archive" and "ls-tree" to use git_complete_revlist_file
that in addition is meant to expand A..B range notation was a
mistake.
Signed-off-by: Junio C Hamano <[email protected]>
and then queue this on top of d8517cc6670d (completion: difftool
takes both revs and files, 2013-06-02), so that the attached and
d8517cc6670d will be the only two commits that graduate to 'master'
from this topic.
-- >8 --
From: Ramkumar Ramachandra <[email protected]>
Date: Sun, 2 Jun 2013 19:33:42 +0530
Subject: [PATCH] completion: show can take both revlist and paths
The 'git show' completion uses __git_complete_file (aliased to
__git_complete_revlist_file), because accepts <tree-ish>:<path> as
well as <commit-ish>. But the command also accepts range of commits
in A..B notation, so using __git_complete_revlist_file is more
appropriate.
There still remain two users of __git_complete_file, completions for
"archive" and "ls-tree". As these commands do not take range
notation, and "git show" no longer uses __git_complete_file, the
implementation of can be updated not to complete ranges, but that is
a separate topic.
Signed-off-by: Ramkumar Ramachandra <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
---
contrib/completion/git-completion.bash | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/contrib/completion/git-completion.bash
b/contrib/completion/git-completion.bash
index 1b4b0f9..b9dfc3b 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2360,7 +2360,7 @@ _git_show ()
return
;;
esac
- __git_complete_file
+ __git_complete_revlist_file
}
_git_show_branch ()
--
1.8.3-477-gc2fede3
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html