Subject: Re: [PATCH] git-completion: add stashes for gitk

From: Junio C Hamano <[email-masked]>
Date: Thu, 12 Mar 2015 11:40:43 -0700

Junio C Hamano <[email-masked]> writes:

> ...  Also, when you have no ref that is named es-tee something,
> "gitk st<TAB>" completes to "gitk stash@{", as if the problem the
> change tries to cure is "it is unnecessarily hard to type at-mark
> open-brace".
>
> I do not have to be the target audience, though.  Maybe this is
> useful for some people.

There is another thing your patch made me notice, which is not a
problem that is introduced by your desire to include stash entries
to the completion.

The way in which the users can name a stash entry is not very
descriptive.  I often cannot offhand remember what stash@{2}
contains, for example, in my tree.  So it is not very useful to be
offered a choice among stash@{0} stash@{1} stash@{2} and stash@{3}
by a TAB completion.

If there were a way for users to say "The one I made to stash away
that change" from the command line (I do not mean "git stash list |
grep 'that change'"), it would be good.  A new syntax to name a
stash entry by pattern matching with the message given to "stash
save" could be something like (just thinking aloud, not suggesting
that this has to be our final design of that syntax):

    $ git log stash@{/$pattern}

and then it mould make a lot of sense for a completion request

    $ git log stash@{<TAB>

to result in something like this:

    "stash@{/avoid unnecessary negation}"
    "stash@{/style fix t4122}"
    ...