Re: git status: small difference between stating whole repository and small subdirectory
From: Thomas Rast <hidden>
Date: 2016-06-15 22:53:04
Piotr Krukowiecki [off-list ref] writes:
On Fri, Feb 10, 2012 at 10:42 AM, Piotr Krukowiecki [off-list ref] wrote:quoted
I compared stating whole tree vs one small subdirectory, and I expected that for the subdirectory status will be very very fast. After all, it has only few files to stat. But it's not fast. Why? With cold cache (echo 3 | sudo tee /proc/sys/vm/drop_caches): $ time git status > /dev/null real 0m41.670s user 0m0.980s sys 0m2.908s $ time git status -- src/.../somedir > /dev/null real 0m17.380s user 0m0.748s sys 0m0.328s
[...]
I can't reproduce this behavior at the moment. 'status' on the directory takes about 1.5s instead of 17s. status on whole repository takes 27s. This is my work repository, so it was changed today.
To me these timings smell like a combination of either a network
filesystem or a slow/busy disk, and non-packed repositories. Next time
this happens look at 'git count-objects', run 'git gc' and redo the
timings.
If you are indeed on a network filesystem, also look at the
core.preloadIndex setting.
--
Thomas Rast
trast@{inf,student}.ethz.ch