summaryrefslogtreecommitdiff
path: root/string-list.h
diff options
context:
space:
mode:
authorKjetil Barvik <barvik@broadpark.no>2009-01-18 15:14:51 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-01-18 21:54:49 (GMT)
commit09c9306658f793f2cad1ed7856b55a7c4e758703 (patch)
treeabae7acef3badce0b9ffd8195a73faeef4856bb4 /string-list.h
parent92604b466344b2157efc42ef3521dac22d7906a2 (diff)
downloadgit-09c9306658f793f2cad1ed7856b55a7c4e758703.zip
git-09c9306658f793f2cad1ed7856b55a7c4e758703.tar.gz
git-09c9306658f793f2cad1ed7856b55a7c4e758703.tar.bz2
lstat_cache(): introduce has_symlink_or_noent_leading_path() function
In some cases, especially inside the unpack-trees.c file, and inside the verify_absent() function, we can avoid some unnecessary calls to lstat(), if the lstat_cache() function can also be told to keep track of non-existing directories. So we update the lstat_cache() function to handle this new fact, introduce a new wrapper function, and the result is that we save lots of lstat() calls for a removed directory which previously contained lots of files, when we call this new wrapper of lstat_cache() instead of the old one. We do similar changes inside the unlink_entry() function, since if we can already say that the leading directory component of a pathname does not exist, it is not necessary to try to remove a pathname below it! Thanks to Junio C Hamano, Linus Torvalds and Rene Scharfe for valuable comments to this patch! Signed-off-by: Kjetil Barvik <barvik@broadpark.no> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'string-list.h')
0 files changed, 0 insertions, 0 deletions