On Sat, Jan 20, 2018 at 3:33 PM, brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> wrote: > We recently introduced a regression in cloning repositories onto > case-insensitive file systems where the repository contains multiple > files differing only in case. In such a case, we would segfault. This > segfault has already been fixed (repository: pre-initialize hash algo > pointer), but it's not the first time similar problems have arisen. > Introduce a test to catch this case and ensure the behavior does not > regress. I guess you'd probably want a "From: Eric Sunshine <sunshine@xxxxxxxxxxxxxx>" header before this paragraph. The patch itself looks correct... ;-) > Signed-off-by: Eric Sunshine <sunshine@xxxxxxxxxxxxxx> > Signed-off-by: brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> > --- > diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh > index 0f895478f0..53b2dda9d2 100755 > --- a/t/t5601-clone.sh > +++ b/t/t5601-clone.sh > @@ -611,4 +611,17 @@ test_expect_success 'GIT_TRACE_PACKFILE produces a usable pack' ' > git -C replay.git index-pack -v --stdin <tmp.pack > ' > > +hex2oct() { > + perl -ne 'printf "\\%03o", hex for /../g' > +} > + > +test_expect_success 'clone on case-insensitive fs' ' > + o=$(git hash-object -w --stdin </dev/null | hex2oct) && > + t=$(printf "100644 X\0${o}100644 x\0${o}" | > + git hash-object -w -t tree --stdin) && > + c=$(git commit-tree -m bogus $t) && > + git update-ref refs/heads/bogus $c && > + git clone -b bogus . bogus > +' > + > test_done