]> git.ipfire.org Git - thirdparty/git.git/commit
sha1-file: introduce no-lazy-fetch has_object()
authorJonathan Tan <jonathantanmy@google.com>
Wed, 5 Aug 2020 23:06:49 +0000 (16:06 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 6 Aug 2020 20:01:02 +0000 (13:01 -0700)
commit1d8d9cb62099e1524ce1269ea88faad871c2197f
treed319dd7f637a3c89fa0a6ed3ff0f37c758643a05
parentdc04167d378fb29d30e1647ff6ff51dd182bc9a3
sha1-file: introduce no-lazy-fetch has_object()

There have been a few bugs wherein Git fetches missing objects whenever
the existence of an object is checked, even though it does not need to
perform such a fetch. To resolve these bugs, we could look at all the
places that has_object_file() (or a similar function) is used. As a
first step, introduce a new function has_object() that checks for the
existence of an object, with a default behavior of not fetching if the
object is missing and the repository is a partial clone. As we verify
each has_object_file() (or similar) usage, we can replace it with
has_object(), and we will know that we are done when we can delete
has_object_file() (and the other similar functions).

Also, the new function has_object() has more appropriate defaults:
besides not fetching, it also does not recheck packed storage.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
object-store.h
sha1-file.c