mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-15 13:34:18 +01:00
d634a3d333
Speed up the prompt on large and/or deep working directories by stopping grep(1) as soon as it finds a single match, with `-q`. Also, correct the regexp by adding a ^ anchor and increase its specificity by accounting for the space in Porcelain Format v1. Previously, +vi-git-untracked() waited for grep(1) to find all matches of untracked files, redirecting them away to /dev/null, before finally concluding that untracked files do indeed exist. With this patch, I see 4x speedup on a large Git-enabled $HOME: $ time (git status --porcelain | wc -l) 212 0.01s user 0.02s system 0% cpu 9.021 total $ time (git status --porcelain | grep '??' &>/dev/null) 0.01s user 0.02s system 0% cpu 12.294 total $ time (git status --porcelain | grep -q '^?? ' 2>/dev/null) 0.01s user 0.01s system 0% cpu 3.097 total Note that `-q` for grep(1) is in POSIX (IEEE Std 1003.1-2017): https://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html See discussion https://www.zsh.org/mla/workers/2021/msg01354.html |
||
---|---|---|
.. | ||
.distfiles | ||
bash2zshprompt | ||
c2z | ||
compctl-examples | ||
globtests | ||
globtests.ksh | ||
job-control-tests | ||
lete2ctl | ||
make-zsh-urls | ||
vcs_info-examples |