]>
Commit | Line | Data |
---|---|---|
950a234c JH |
1 | #!/bin/sh |
2 | # | |
3 | # This test measures the performance of various read-tree | |
4 | # and status operations. It is primarily interested in | |
5 | # the algorithmic costs of index operations and recursive | |
6 | # tree traversal -- and NOT disk I/O on thousands of files. | |
7 | ||
8 | test_description="Tests performance of read-tree" | |
9 | ||
10 | . ./perf-lib.sh | |
11 | ||
12 | test_perf_default_repo | |
13 | ||
14 | # If the test repo was generated by ./repos/many-files.sh | |
15 | # then we know something about the data shape and branches, | |
16 | # so we can isolate testing to the ballast-related commits | |
17 | # and setup sparse-checkout so we don't have to populate | |
18 | # the ballast files and directories. | |
19 | # | |
20 | # Otherwise, we make some general assumptions about the | |
21 | # repo and consider the entire history of the current | |
22 | # branch to be the ballast. | |
23 | ||
24 | test_expect_success "setup repo" ' | |
25 | if git rev-parse --verify refs/heads/p0006-ballast^{commit} | |
26 | then | |
74d2f569 ES |
27 | echo Assuming synthetic repo from many-files.sh && |
28 | git branch br_base master && | |
29 | git branch br_ballast p0006-ballast && | |
30 | git config --local core.sparsecheckout 1 && | |
950a234c JH |
31 | cat >.git/info/sparse-checkout <<-EOF |
32 | /* | |
33 | !ballast/* | |
34 | EOF | |
35 | else | |
74d2f569 ES |
36 | echo Assuming non-synthetic repo... && |
37 | git branch br_base $(git rev-list HEAD | tail -n 1) && | |
950a234c JH |
38 | git branch br_ballast HEAD |
39 | fi && | |
40 | git checkout -q br_ballast && | |
41 | nr_files=$(git ls-files | wc -l) | |
42 | ' | |
43 | ||
44 | test_perf "read-tree status br_ballast ($nr_files)" ' | |
45 | git read-tree HEAD && | |
46 | git status | |
47 | ' | |
48 | ||
49 | test_done |