|
|
|
@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
|
|
|
|
|
#!/bin/sh |
|
|
|
|
|
|
|
|
|
test_description='Test that adding many notes triggers automatic fanout restructuring' |
|
|
|
|
test_description='Test that adding/removing many notes triggers automatic fanout restructuring' |
|
|
|
|
|
|
|
|
|
. ./test-lib.sh |
|
|
|
|
|
|
|
|
@ -47,4 +47,49 @@ test_expect_success 'many notes created with git-notes triggers fanout' '
@@ -47,4 +47,49 @@ test_expect_success 'many notes created with git-notes triggers fanout' '
|
|
|
|
|
done |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success 'deleting most notes with git-notes' ' |
|
|
|
|
num_notes=250 && |
|
|
|
|
i=0 && |
|
|
|
|
git rev-list HEAD | |
|
|
|
|
while read sha1 |
|
|
|
|
do |
|
|
|
|
i=$(($i + 1)) && |
|
|
|
|
if test $i -gt $num_notes |
|
|
|
|
then |
|
|
|
|
break |
|
|
|
|
fi && |
|
|
|
|
test_tick && |
|
|
|
|
git notes remove "$sha1" |
|
|
|
|
done |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success 'most notes deleted correctly with git-notes' ' |
|
|
|
|
git log HEAD~250 | grep "^ " > output && |
|
|
|
|
i=50 && |
|
|
|
|
while test $i -gt 0 |
|
|
|
|
do |
|
|
|
|
echo " commit #$i" && |
|
|
|
|
echo " note #$i" && |
|
|
|
|
i=$(($i - 1)); |
|
|
|
|
done > expect && |
|
|
|
|
test_cmp expect output |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
do |
|
|
|
|
case "$path" in |
|
|
|
|
????????????????????????????????????????) |
|
|
|
|
: true |
|
|
|
|
;; |
|
|
|
|
*) |
|
|
|
|
echo "Invalid path \"$path\"" && |
|
|
|
|
return 1 |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
done |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_done |
|
|
|
|