diff options
author | Vincent Ambo <tazjin@google.com> | 2020-05-25T23·06+0100 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2020-05-25T23·06+0100 |
commit | 93ba78d6f4632ef1c5228965e3edc8c0faf88c1e (patch) | |
tree | 85730c182a9f5f492ade8e8ccdb1c2356f9900bd /third_party/git/t/t3305-notes-fanout.sh | |
parent | 6f8fbf4aa4b1654ab27d4829e114538761817de0 (diff) |
revert(3p/git): Revert merge of git upstream at v2.26.2 r/852
This causes cgit to serve error pages, which is undesirable. This reverts commit 5229c9b232de5bfa959ad6ebbb4c8192ac513352, reversing changes made to f2b211131f2347342dde63975b09cf603149f1a3.
Diffstat (limited to 'third_party/git/t/t3305-notes-fanout.sh')
-rwxr-xr-x | third_party/git/t/t3305-notes-fanout.sh | 117 |
1 files changed, 35 insertions, 82 deletions
diff --git a/third_party/git/t/t3305-notes-fanout.sh b/third_party/git/t/t3305-notes-fanout.sh index 3b4753e1b479..54460beec469 100755 --- a/third_party/git/t/t3305-notes-fanout.sh +++ b/third_party/git/t/t3305-notes-fanout.sh @@ -4,38 +4,6 @@ test_description='Test that adding/removing many notes triggers automatic fanout . ./test-lib.sh -path_has_fanout() { - path=$1 && - fanout=$2 && - after_last_slash=$((40 - $fanout * 2)) && - echo $path | grep -q "^\([0-9a-f]\{2\}/\)\{$fanout\}[0-9a-f]\{$after_last_slash\}$" -} - -touched_one_note_with_fanout() { - notes_commit=$1 && - modification=$2 && # 'A' for addition, 'D' for deletion - fanout=$3 && - diff=$(git diff-tree --no-commit-id --name-status --root -r $notes_commit) && - path=$(echo $diff | sed -e "s/^$modification[\t ]//") && - path_has_fanout "$path" $fanout; -} - -all_notes_have_fanout() { - notes_commit=$1 && - fanout=$2 && - git ls-tree -r --name-only $notes_commit 2>/dev/null | - while read path - do - path_has_fanout $path $fanout || return 1 - done -} - -test_expect_success 'tweak test environment' ' - git checkout -b nondeterminism && - test_commit A && - git checkout --orphan with_notes; -' - test_expect_success 'creating many notes with git-notes' ' num_notes=300 && i=0 && @@ -52,7 +20,7 @@ test_expect_success 'creating many notes with git-notes' ' test_expect_success 'many notes created correctly with git-notes' ' git log | grep "^ " > output && - i=$num_notes && + i=300 && while test $i -gt 0 do echo " commit #$i" && @@ -62,46 +30,39 @@ test_expect_success 'many notes created correctly with git-notes' ' test_cmp expect output ' -test_expect_success 'stable fanout 0 is followed by stable fanout 1' ' - i=$num_notes && - fanout=0 && - while test $i -gt 0 +test_expect_success 'many notes created with git-notes triggers fanout' ' + # Expect entire notes tree to have a fanout == 1 + git ls-tree -r --name-only refs/notes/commits | + while read path do - i=$(($i - 1)) && - if touched_one_note_with_fanout refs/notes/commits~$i A $fanout - then - continue - elif test $fanout -eq 0 - then - fanout=1 && - if all_notes_have_fanout refs/notes/commits~$i $fanout - then - echo "Fanout 0 -> 1 at refs/notes/commits~$i" && - continue - fi - fi && - echo "Failed fanout=$fanout check at refs/notes/commits~$i" && - git ls-tree -r --name-only refs/notes/commits~$i && - return 1 - done && - all_notes_have_fanout refs/notes/commits 1 + case "$path" in + ??/??????????????????????????????????????) + : true + ;; + *) + echo "Invalid path \"$path\"" && + return 1 + ;; + esac + done ' test_expect_success 'deleting most notes with git-notes' ' - remove_notes=285 && + num_notes=250 && i=0 && git rev-list HEAD | - while test $i -lt $remove_notes && read sha1 + while test $i -lt $num_notes && read sha1 do i=$(($i + 1)) && test_tick && - git notes remove "$sha1" 2>/dev/null || return 1 + git notes remove "$sha1" || + exit 1 done ' test_expect_success 'most notes deleted correctly with git-notes' ' - git log HEAD~$remove_notes | grep "^ " > output && - i=$(($num_notes - $remove_notes)) && + git log HEAD~250 | grep "^ " > output && + i=50 && while test $i -gt 0 do echo " commit #$i" && @@ -111,29 +72,21 @@ test_expect_success 'most notes deleted correctly with git-notes' ' test_cmp expect output ' -test_expect_success 'stable fanout 1 is followed by stable fanout 0' ' - i=$remove_notes && - fanout=1 && - while test $i -gt 0 +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 - i=$(($i - 1)) && - if touched_one_note_with_fanout refs/notes/commits~$i D $fanout - then - continue - elif test $fanout -eq 1 - then - fanout=0 && - if all_notes_have_fanout refs/notes/commits~$i $fanout - then - echo "Fanout 1 -> 0 at refs/notes/commits~$i" && - continue - fi - fi && - echo "Failed fanout=$fanout check at refs/notes/commits~$i" && - git ls-tree -r --name-only refs/notes/commits~$i && - return 1 - done && - all_notes_have_fanout refs/notes/commits 0 + case "$path" in + ????????????????????????????????????????) + : true + ;; + *) + echo "Invalid path \"$path\"" && + return 1 + ;; + esac + done ' test_done |