Stefan Beller [off-list ref] writes:
quoted
If I were to explicitly ignore that file, then even though I know
whats-cooking.txt is not ignored,
$ git add whats-coo<HT>
would not offer anything. I'd be left scratching my head, wondering
if I mistyped the early part of the filename (e.g. "wahts-coo<HT>"?).
Well, git add cannot do anything with either of the files, so why would
it offer to complete to one of them?
In an ideal world it would tell you whats-cooking.txt doesn't need
adding and whats-cooking.txt+ is ignored locally so excluded from
being added.
Exactly my point that you omitted from your quoting ;-)
Because the completion cannot give such an explanation, the
behaviour gives an unnecessary confusion to the user. If it offered
whats-cooking.txt as a candidate, at least the behaviour would make
sense to the user. "Doesn't need adding" is quite different from
"must not be added". In other words, "git add A && git add A" does
not hurt, but "git add A~" would because the latter would only makes
you see unnecessary error message ("You need -f if you really mean
it").
On Thu, Mar 24, 2016 at 3:55 PM, Junio C Hamano [off-list ref] wrote:
Stefan Beller [off-list ref] writes:
quoted
quoted
If I were to explicitly ignore that file, then even though I know
whats-cooking.txt is not ignored,
$ git add whats-coo<HT>
would not offer anything. I'd be left scratching my head, wondering
if I mistyped the early part of the filename (e.g. "wahts-coo<HT>"?).
Well, git add cannot do anything with either of the files, so why would
it offer to complete to one of them?
In an ideal world it would tell you whats-cooking.txt doesn't need
adding and whats-cooking.txt+ is ignored locally so excluded from
being added.
Exactly my point that you omitted from your quoting ;-)
Because the completion cannot give such an explanation, the
behaviour gives an unnecessary confusion to the user. If it offered
whats-cooking.txt as a candidate, at least the behaviour would make
sense to the user. "Doesn't need adding" is quite different from
"must not be added". In other words, "git add A && git add A" does
not hurt, but "git add A~" would because the latter would only makes
you see unnecessary error message ("You need -f if you really mean
it").
I use this feature every day such that I can just do:
git add <tab>
and it cycles through all the available files which differ (thus could
be added). If it didn't do (3) then this would tab complete to every
file, every time, which is not what I expect it to do. It is
definitely something one has to get used to, but I know I prefer it
the way that it is.
For your case, I think local ignore is the right solution. Narrowing
the list is really a useful feature of add's tab completion.
Thanks,
Jake