summaryrefslogtreecommitdiffstats
path: root/contrib/persistent-https
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2025-12-08 17:48:56 -0800
committerJunio C Hamano <gitster@pobox.com>2025-12-09 18:12:24 +0900
commit3c7c41d6b7ee4c4576490a3b6cfefe4d59d24172 (patch)
treeded077f5dc3fcf925c9e941fe37a2d60c5ed8341 /contrib/persistent-https
parentf0ef5b6d9bcc258e4cbef93839d1b7465d5212b9 (diff)
downloadgit-3c7c41d6b7ee4c4576490a3b6cfefe4d59d24172.tar.gz
git-3c7c41d6b7ee4c4576490a3b6cfefe4d59d24172.zip
object: apply skip_hash and discard_tree optimizations to unknown blobs too
parse_object_with_flags() has an optimization to skip parsing blobs if PARSE_OBJECT_SKIP_HASH_CHECK is set and the object hasn't been seen before or might be a blob but hasn't been parsed yet. The latter can happen, for example, if add_tree_entries() walks a path that references a blob object that hasn't been seen before: lookup_blob() marks the referenced oid as being a blob, but does not provide any additional information about it until it is parsed. It's possible for an object to be created without even a type, such as when prepare_revision_walk() uses mark_uninteresting() to mark all promisor objects as uninteresting. These objects have obj->parsed == false and obj->type == OBJ_NONE. The skip_hash optimization does not consider this kind of object, so parse_object_with_flags() proceeds to fully parse the object to determine its type. Improve the optimization by applying it to OBJ_NONE objects as well as OBJ_BLOB ones. Apply a similar fix for trees. Fixes: 8db2dad7a045 ("parse_object(): check on-disk type of suspected blob") Signed-off-by: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/persistent-https')
0 files changed, 0 insertions, 0 deletions