diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-10-10 12:37:16 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-10-10 12:37:16 +0900 |
commit | 66ec2373feaf1f85c0ed3f9b5b13f005bfd4dba4 (patch) | |
tree | 664557dc25990e380b08aee3ae921bb1a7e7f45a /t/perf | |
parent | Merge branch 'ds/multi-pack-verify' (diff) | |
parent | fsck: support comments & empty lines in skipList (diff) | |
download | tgif-66ec2373feaf1f85c0ed3f9b5b13f005bfd4dba4.tar.xz |
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
Diffstat (limited to 't/perf')
-rwxr-xr-x | t/perf/p1450-fsck.sh | 13 | ||||
-rwxr-xr-x | t/perf/p1451-fsck-skip-list.sh | 40 |
2 files changed, 53 insertions, 0 deletions
diff --git a/t/perf/p1450-fsck.sh b/t/perf/p1450-fsck.sh new file mode 100755 index 0000000000..ae1b84198b --- /dev/null +++ b/t/perf/p1450-fsck.sh @@ -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 diff --git a/t/perf/p1451-fsck-skip-list.sh b/t/perf/p1451-fsck-skip-list.sh new file mode 100755 index 0000000000..c2b97d2487 --- /dev/null +++ b/t/perf/p1451-fsck-skip-list.sh @@ -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 |