On Wed, Jan 26, 2022 at 08:41:46AM +0000, Matthew John Cheetham via GitGitGadget wrote: > + while ((e = readdir(dir)) != NULL) > + if (!is_dot_or_dotdot(e->d_name) && > + e->d_type == DT_DIR && strlen(e->d_name) == 2 && > + !hex_to_bytes(&c, e->d_name, 1)) { What is this call to hex_to_bytes() for? I assume it's checking to make sure the directory we're looking at is one of the shards of loose objects. Similar to my suggestion on the previous patch, I think that we could get rid of this function entirely and replace it with a call to for_each_loose_file_in_objdir(). We'll pay a little bit of extra cost to parse out each loose object's OID, but it should be negligible since we're not actually opening up each object. > diff --git a/contrib/scalar/t/t9099-scalar.sh b/contrib/scalar/t/t9099-scalar.sh > index b1745851e31..f2ec156d819 100755 > --- a/contrib/scalar/t/t9099-scalar.sh > +++ b/contrib/scalar/t/t9099-scalar.sh > @@ -77,6 +77,8 @@ test_expect_success UNZIP 'scalar diagnose' ' > unzip -p "$zip_path" diagnostics.log >out && > test_file_not_empty out && > unzip -p "$zip_path" packs-local.txt >out && > + test_file_not_empty out && A more comprehensive test (here, and in the earlier instances, too) might be useful beyond just "does this file exist in the archive". Constructing an example repository where the number of loose objects is known ahead of time, and then finding that number in the output of objects-local.txt might be worthwhile to give us some extra confidence that this is working as intended. > + unzip -p "$zip_path" objects-local.txt >out && > test_file_not_empty out > ' Thanks, Taylor