]> git.ipfire.org Git - thirdparty/git.git/blob - t/perf/p3400-rebase.sh
The twelfth batch
[thirdparty/git.git] / t / perf / p3400-rebase.sh
1 #!/bin/sh
2
3 test_description='Tests rebase performance'
4 . ./perf-lib.sh
5
6 test_perf_default_repo
7
8 test_expect_success 'setup rebasing on top of a lot of changes' '
9 git checkout -f -B base &&
10 git checkout -B to-rebase &&
11 git checkout -B upstream &&
12 for i in $(test_seq 100)
13 do
14 # simulate huge diffs
15 echo change$i >unrelated-file$i &&
16 test_seq 1000 >>unrelated-file$i &&
17 git add unrelated-file$i &&
18 test_tick &&
19 git commit -m commit$i unrelated-file$i &&
20 echo change$i >unrelated-file$i &&
21 test_seq 1000 | sort -nr >>unrelated-file$i &&
22 git add unrelated-file$i &&
23 test_tick &&
24 git commit -m commit$i-reverse unrelated-file$i ||
25 return 1
26 done &&
27 git checkout to-rebase &&
28 test_commit our-patch interesting-file
29 '
30
31 test_perf 'rebase on top of a lot of unrelated changes' '
32 git rebase --onto upstream HEAD^ &&
33 git rebase --onto base HEAD^
34 '
35
36 test_expect_success 'setup rebasing many changes without split-index' '
37 git config core.splitIndex false &&
38 git checkout -B upstream2 to-rebase &&
39 git checkout -B to-rebase2 upstream
40 '
41
42 test_perf 'rebase a lot of unrelated changes without split-index' '
43 git rebase --onto upstream2 base &&
44 git rebase --onto base upstream2
45 '
46
47 test_expect_success 'setup rebasing many changes with split-index' '
48 git config core.splitIndex true
49 '
50
51 test_perf 'rebase a lot of unrelated changes with split-index' '
52 git rebase --onto upstream2 base &&
53 git rebase --onto base upstream2
54 '
55
56 test_done