diff options
author | SZEDER Gábor <szeder@ira.uka.de> | 2015-07-19 13:28:06 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-07-20 13:08:56 -0700 |
commit | dd160d794f0bf02c30d2e5032e216b1e8ac14222 (patch) | |
tree | 2ede96bd09f34917f52ef83a7185cd50a0b1b29f /contrib/convert-objects/convert-objects.c | |
parent | bash prompt: test untracked files status indicator with untracked dirs (diff) | |
download | tgif-dd160d794f0bf02c30d2e5032e216b1e8ac14222.tar.xz |
bash prompt: faster untracked status indicator with untracked directories
If the untracked status indicator is enabled, __git_ps1() looks for
untracked files by running 'git ls-files'. This can be perceptibly slow
in case of an untracked directory containing lot of files, because it
lists all files found in the untracked directory only to be redirected
into /dev/null right away (this is the actual command run by __git_ps1()):
$ ls untracked-dir/ |wc -l
100000
$ time git ls-files --others --exclude-standard --error-unmatch \
-- ':/*' >/dev/null 2>/dev/null
real 0m0.955s
user 0m0.936s
sys 0m0.016s
Eliminate this delay by additionally passing the '--directory
--no-empty-directory' options to 'git ls-files' to show only the name of
non-empty untracked directories instead of all their content:
$ time git ls-files --others --exclude-standard --directory \
--no-empty-directory --error-unmatch -- ':/*' >/dev/null 2>/dev/null
real 0m0.010s
user 0m0.008s
sys 0m0.000s
This follows suit of ea95c7b8f5 (completion: improve untracked directory
filtering for filename completion, 2013-09-18).
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/convert-objects/convert-objects.c')
0 files changed, 0 insertions, 0 deletions