Merge branch 'kb/status-ignored-optim' into next
"git status --ignored" had many corner case bugs. Also the command
has been optimized by taking advantage of the fact that paths that
are already known to the index do not have to be checked against
the .gitignore mechanism most of the time.
* kb/status-ignored-optim:
dir.c: git-status: avoid is_excluded checks for tracked files
dir.c: replace is_path_excluded with now equivalent is_excluded API
dir.c: unify is_excluded and is_path_excluded APIs
dir.c: move prep_exclude and factor out parts of last_exclude_matching
dir.c: git-status --ignored: don't list empty directories as ignored
dir.c: git-status --ignored: don't list empty ignored directories
dir.c: git-status --ignored: don't list files in ignored directories
dir.c: git-status --ignored: don't drop ignored directories