Hi brian, On Sat, 25 Jan 2020, brian m. carlson wrote: > This test relies on a roughly equal distribution of hashes for notes in > order to ensure that fanouts are compressed. If there are subtrees with > only one item left after removing notes, they'll end up still with one > level of fanout, causing the test to fail. That is _almost_ correct: The heuristic wants to see one bucket that has a note in it. Or something like that. See 73f77b909f8 (Notes API: for_each_note(): Traverse the entire notes tree with a callback, 2010-02-13) for details. (Cc:ing Johan.) > The test happens to pass with SHA-1, but doesn't necessarily with other > hash algorithms, so annotate it with the SHA1 prerequisite. I would rather see this tested, still, and reducing the number of notes that are retained from 50 to 20 before testing that the fanout has been reduced to 0 seems to do the trick. Therefore, I would love to submit this for squashing: -- snip -- diff --git a/t/t3305-notes-fanout.sh b/t/t3305-notes-fanout.sh index 3520402bb81..39b12c9902c 100755 --- a/t/t3305-notes-fanout.sh +++ b/t/t3305-notes-fanout.sh @@ -43,7 +43,7 @@ test_expect_success 'many notes created with git-notes triggers fanout' ' ' test_expect_success 'deleting most notes with git-notes' ' - num_notes=250 && + num_notes=280 && i=0 && git rev-list HEAD | while test $i -lt $num_notes && read sha1 @@ -56,8 +56,8 @@ test_expect_success 'deleting most notes with git-notes' ' ' test_expect_success 'most notes deleted correctly with git-notes' ' - git log HEAD~250 | grep "^ " > output && - i=50 && + git log HEAD~280 | grep "^ " > output && + i=20 && while test $i -gt 0 do echo " commit #$i" && @@ -67,7 +67,7 @@ test_expect_success 'most notes deleted correctly with git-notes' ' test_cmp expect output ' -test_expect_success SHA1 'deleting most notes triggers fanout consolidation' ' +test_expect_success 'deleting most notes triggers fanout consolidation' ' # Expect entire notes tree to have a fanout == 0 git ls-tree -r --name-only refs/notes/commits | while read path -- snap -- Thanks, Dscho > > Signed-off-by: brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> > --- > t/t3305-notes-fanout.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/t/t3305-notes-fanout.sh b/t/t3305-notes-fanout.sh > index 831f83d211..3520402bb8 100755 > --- a/t/t3305-notes-fanout.sh > +++ b/t/t3305-notes-fanout.sh > @@ -67,7 +67,7 @@ test_expect_success 'most notes deleted correctly with git-notes' ' > test_cmp expect output > ' > > -test_expect_success 'deleting most notes triggers fanout consolidation' ' > +test_expect_success SHA1 'deleting most notes triggers fanout consolidation' ' > # Expect entire notes tree to have a fanout == 0 > git ls-tree -r --name-only refs/notes/commits | > while read path >