Hi, Ævar Arnfjörð Bjarmason wrote: > Add a test showing that ls-files times grow exponentially in the face > of some pathological globs, whereas refglobs via for-each-ref don't in > practice suffer from the same issue. Cool. [...] > --- /dev/null > +++ b/t/perf/p0100-globbing.sh > @@ -0,0 +1,48 @@ > +#!/bin/sh > + > +test_description="Tests pathalogical globbing performance > + > +Shows how Git's globbing performance performs when given the sort of > +pathalogical patterns described in at https://research.swtch.com/glob s/pathalogical/pathological/ > +" > + > +. ./perf-lib.sh > + > +test_globs_big='10 25 50 75 100' > +test_globs_small='1 2 3 4 5 6' > + > +test_perf_fresh_repo > + > +test_expect_success 'setup' ' > + for i in $(test_seq 1 100) > + do > + printf "a" >>refname && > + for j in $(test_seq 1 $i) > + do > + printf "a*" >>refglob.$i > + done && > + echo b >>refglob.$i > + done && > + test_commit $(cat refname) && > + for i in $(test_seq 1 100) > + do > + echo git tag $(cat refname)-$i Leftover echo from debugging? > + done && > + test_commit hello > +' > + > +for i in $test_globs_big > +do > + test_perf "refglob((a*)^nb) against tag a^100; n = $i" ' > + git for-each-ref "refs/tags/$(cat refglob.'$i')b" > + ' > +done > + > +for i in $test_globs_small > +do > + test_perf "fileglob((a*)^nb) against file (a^100).t; n = $i" ' > + git ls-files "$(cat refglob.'$i')b" > + ' > +done The rest looks sensible. Thanks, Jonathan