sha1_file: freshen pack objects before loose
commitb5f52f372e85c6e461b6123cd7eebd544b439020
authorJeff King <peff@peff.net>
Mon, 20 Apr 2015 19:54:03 +0000 (20 15:54 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 20 Apr 2015 20:09:38 +0000 (20 13:09 -0700)
tree06946185a39503c07a466cfceed3edfa709dd09f
parent1385bb7ba39128de0a5bc4ff6e8a5ad03fc49205
sha1_file: freshen pack objects before loose

When writing out an object file, we first check whether it
already exists and if so optimize out the write. Prior to
33d4221, we did this by calling has_sha1_file(), which will
check for packed objects followed by loose. Since that
commit, we check loose objects first.

For the common case of a repository whose objects are mostly
packed, this means we will make a lot of extra access()
system calls checking for loose objects. We should follow
the same packed-then-loose order that all of our other
lookups use.

Reported-by: Stefan Saasen <ssaasen@atlassian.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sha1_file.c