Jeff King [off-list ref] writes:
IOW, given:
git init
mkdir untracked ignored
>untracked/file
>ignored/file
echo ignored >.git/info/exclude
I would expect:
$ git status --short --ignored --untracked=normal
?? untracked/
!! ignored/
Sensible.
$ git status --short --ignored --untracked=all
?? untracked/file
!! ignored/file
Again sensible; OK, --untracked=all is what I was missing.
I do not know if anybody cares about the distinction, but optionally we
could give --ignored its own selector, like:
$ git status --short --ignored=all --untracked=normal
?? untracked/
!! ignored/file
where obviously it would default to "none" (whereas untracked defaults
to "normal").
We could just say the selector for the ignored implicitly follows
what is given for --untracked, if we don't care.
But the behavior with Antoine's patch is:
$ git status --short --ignored --untracked=normal
?? untracked/
!! ignored
$ git status --short --ignored --untracked=all
?? untracked/file
!! ignored
which seems wrong to me for two reasons:
1. It does not recurse for ignored but untracked entries. Neither does
the current code, but I think it should.
2. It loses the trailing slash from the ignored directory in both
cases (which is printed by the current code).
Nicely analysed. Perhaps we would want new test pieces to define
the behaviour we want to see first?