Merge branch 'ab/fsck-skiplist'
Update fsck.skipList implementation and documentation. * ab/fsck-skiplist: fsck: support comments & empty lines in skipList fsck: use oidset instead of oid_array for skipList fsck: use strbuf_getline() to read skiplist file fsck: add a performance test for skipList fsck: add a performance test fsck: document that skipList input must be unabbreviated fsck: document and test commented & empty line skipList input fsck: document and test sorted skipList input fsck tests: add a test for no skipList input fsck tests: setup of bogus commit object
This commit is contained in:
13
t/perf/p1450-fsck.sh
Executable file
13
t/perf/p1450-fsck.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
test_description='Test fsck performance'
|
||||
|
||||
. ./perf-lib.sh
|
||||
|
||||
test_perf_large_repo
|
||||
|
||||
test_perf 'fsck' '
|
||||
git fsck
|
||||
'
|
||||
|
||||
test_done
|
||||
40
t/perf/p1451-fsck-skip-list.sh
Executable file
40
t/perf/p1451-fsck-skip-list.sh
Executable file
@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
|
||||
test_description='Test fsck skipList performance'
|
||||
|
||||
. ./perf-lib.sh
|
||||
|
||||
test_perf_fresh_repo
|
||||
|
||||
n=1000000
|
||||
|
||||
test_expect_success "setup $n bad commits" '
|
||||
for i in $(test_seq 1 $n)
|
||||
do
|
||||
echo "commit refs/heads/master" &&
|
||||
echo "committer C <c@example.com> 1234567890 +0000" &&
|
||||
echo "data <<EOF" &&
|
||||
echo "$i.Q." &&
|
||||
echo "EOF"
|
||||
done | q_to_nul | git fast-import
|
||||
'
|
||||
|
||||
skip=0
|
||||
while test $skip -le $n
|
||||
do
|
||||
test_expect_success "create skipList for $skip bad commits" '
|
||||
git log --format=%H --max-count=$skip |
|
||||
sort >skiplist
|
||||
'
|
||||
|
||||
test_perf "fsck with $skip skipped bad commits" '
|
||||
git -c fsck.skipList=skiplist fsck
|
||||
'
|
||||
|
||||
case $skip in
|
||||
0) skip=1 ;;
|
||||
*) skip=${skip}0 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
test_done
|
||||
Reference in New Issue
Block a user