Improve git-status --ignored
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest0 of 8 patches 5 repliesIn review
Patches in v1 No applies recorded yet
None of the 8 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/8] Improve git-status --ignored
This patch series addresses several bugs and performance issues in .gitignore processing that came up in the inotify discussion.
Also available here:
https://github.com/kblees/git/tree/kb/improve-git-status-ignored
git pull git://github.com/kblees/git.git kb/improve-git-status-ignored
Patches 1 - 4 fix bugs in 'git-status --ignored' and add appropriate test cases.
Patches 5 - 7 eliminate the is_path_excluded API, in favor of a slightly improved and faster is_excluded. This speeds up 'git-ls-files --cached --ignored' by factor 5 - 6.
Patch 8 finally skips excluded checks for tracked files. With the bugs and is_path_excluded out of the way, it should be obvious that this can safely be done unconditionally without introducing regressions. Speeds up 'git-status [--ignored]' by factor 1.4 - 2.
I still believe that 'git-status --ignored' shouldn't list "ignored tracked" directories, to be consistent with the listing of untracked directories, and because "ignored tracked" contradicts the very definition of ignored content in gitignore(5).
Cheers,
Karsten
Karsten Blees (8):
dir.c: git-status --ignored: don't drop ignored directories dir.c: git-status --ignored: don't list files in ignored directories dir.c: git-status --ignored: don't list empty ignored directories dir.c: git-status --ignored: don't list empty directories as ignored dir.c: move prep_exclude and factor out parts of last_exclude_matching dir.c: unify is_excluded and is_path_excluded APIs
dir.c: replace is_path_excluded with now equivalent is_excluded API dir.c: git-status: avoid is_excluded checks for tracked files
builtin/add.c | 5 +- builtin/check-ignore.c | 6 +- builtin/ls-files.c | 15 +- dir.c | 351 +++++++++++++++++---------------------------- dir.h | 22 +-- t/t7061-wtstatus-ignore.sh | 104 +++++++++++++- unpack-trees.c | 10 +- unpack-trees.h | 1 - 8 files changed, 243 insertions(+), 271 deletions(-)