On Sun, Aug 19, 2018 at 1:54 PM brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> wrote: > If the hash we're using is 32 bytes in size, attempting to insert a > 20-byte object name won't work. Since these are synthesized objects > that are almost all zeros, look them up in a translation table. > > Signed-off-by: brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> > --- > diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh > @@ -1007,12 +1007,13 @@ test_expect_success SHA1 'validate object ID for a known tree' ' > test_expect_success 'put invalid objects into the index' ' > rm -f .git/index && > - [...] > + suffix=$(echo $ZERO_OID | sed -e "s/^.//") && What's this "suffix" thing for? I don't see it used anywhere. > + cat >badobjects <<-EOF && > + 100644 blob $(test_oid 001) dir/file1 > + 100644 blob $(test_oid 002) dir/file2 > + 100644 blob $(test_oid 003) dir/file3 > + 100644 blob $(test_oid 004) dir/file4 > + 100644 blob $(test_oid 005) dir/file5 So, test_oid() knows about these keys because the patch 1/11 loaded them via test_oid_cache(). Are the keys in oid-info/hash-info and oid-info/oid going to be needed by multiple scripts? If so, I'm wondering if it would make more sense to have test-lib-functions.sh load them instead of expecting each script to do so. Another possibility is to have a test_oid_init() function in test-lib-functions.sh which both loads that low-level information and initializes the hash algorithm. > EOF > git update-index --index-info <badobjects > '