Thanks - this has been updated following Junio's comments. Patch 1 is unmodified from the previous version. Patch 2 has been modified to remove the extraneous code pointed out by Junio. I previously had an idea of populating those fields in packed_object_info(), but later changed my mind, but a rebase went wrong. Patches 3-4 have been updated as I have described in [1] and [2]. [1] https://public-inbox.org/git/20170615111447.1208e02b@xxxxxxxxxxxxxxxxxxxxxxxxxxx/ [2] https://public-inbox.org/git/20170615111447.1208e02b@xxxxxxxxxxxxxxxxxxxxxxxxxxx/ As before, I would like review on patches 1-3 to go into the tree. (Patch 4 is a work in progress, and is here just to demonstrate the effectiveness of the refactoring.) Jonathan Tan (4): sha1_file: teach packed_object_info about typename sha1_file: move delta base cache code up sha1_file: consolidate storage-agnostic object fns sha1_file, fsck: add missing blob support Documentation/config.txt | 10 + builtin/fsck.c | 7 + cache.h | 8 + sha1_file.c | 474 ++++++++++++++++++++++++++++++----------------- t/t3907-missing-blob.sh | 69 +++++++ 5 files changed, 400 insertions(+), 168 deletions(-) create mode 100755 t/t3907-missing-blob.sh -- 2.13.1.518.g3df882009-goog