From: Marius Storm-Olsen Date: Sun, 31 May 2009 16:15:22 +0000 (+0200) Subject: MinGW readdir reimplementation to support d_type X-Git-Tag: v1.6.4-rc0~63^2~5 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/e16c60d9f98c66fd2c9bba64562b3439970c13f8?ds=inline;hp=e16c60d9f98c66fd2c9bba64562b3439970c13f8 MinGW readdir reimplementation to support d_type The original readdir implementation was fast, but didn't support the d_type. This means that git would do additional lstats for each entry, to figure out if the entry was a directory or not. This unneedingly slowed down many operations, since Windows API provides this information directly when walking the directories. By running this implementation on Moe's repo structure: mkdir bummer && cd bummer; for ((i=0;i<100;i++)); do mkdir $i && pushd $i; for ((j=0;j<1000;j++)); do echo "$j" >$j; done; popd; done We see the following speedups: git add . ------------------- old: 00:00:23(.087) new: 00:00:21(.512) 1.07x git status ------------------- old: 00:00:03(.306) new: 00:00:01(.684) 1.96x git clean -dxf ------------------- old: 00:00:01(.918) new: 00:00:00(.295) 6.50x Signed-off-by: Marius Storm-Olsen Signed-off-by: Steffen Prohaska Signed-off-by: Junio C Hamano ---