You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.4 KiB
49 lines
1.4 KiB
#!/bin/sh |
|
# |
|
# This test measures the performance of various read-tree |
|
# and status operations. It is primarily interested in |
|
# the algorithmic costs of index operations and recursive |
|
# tree traversal -- and NOT disk I/O on thousands of files. |
|
|
|
test_description="Tests performance of read-tree" |
|
|
|
. ./perf-lib.sh |
|
|
|
test_perf_default_repo |
|
|
|
# If the test repo was generated by ./repos/many-files.sh |
|
# then we know something about the data shape and branches, |
|
# so we can isolate testing to the ballast-related commits |
|
# and setup sparse-checkout so we don't have to populate |
|
# the ballast files and directories. |
|
# |
|
# Otherwise, we make some general assumptions about the |
|
# repo and consider the entire history of the current |
|
# branch to be the ballast. |
|
|
|
test_expect_success "setup repo" ' |
|
if git rev-parse --verify refs/heads/p0006-ballast^{commit} |
|
then |
|
echo Assuming synthetic repo from many-files.sh && |
|
git branch br_base master && |
|
git branch br_ballast p0006-ballast && |
|
git config --local core.sparsecheckout 1 && |
|
cat >.git/info/sparse-checkout <<-EOF |
|
/* |
|
!ballast/* |
|
EOF |
|
else |
|
echo Assuming non-synthetic repo... && |
|
git branch br_base $(git rev-list HEAD | tail -n 1) && |
|
git branch br_ballast HEAD |
|
fi && |
|
git checkout -q br_ballast && |
|
nr_files=$(git ls-files | wc -l) |
|
' |
|
|
|
test_perf "read-tree status br_ballast ($nr_files)" ' |
|
git read-tree HEAD && |
|
git status |
|
' |
|
|
|
test_done
|
|
|