3 test_description
='Tests rebase performance'
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)
15 echo change$i >unrelated-file$i &&
16 test_seq 1000 >>unrelated-file$i &&
17 git add unrelated-file$i &&
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 &&
24 git commit -m commit$i-reverse unrelated-file$i ||
27 git checkout to-rebase &&
28 test_commit our-patch interesting-file
31 test_perf
'rebase on top of a lot of unrelated changes' '
32 git rebase --onto upstream HEAD^ &&
33 git rebase --onto base HEAD^
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
42 test_perf
'rebase a lot of unrelated changes without split-index' '
43 git rebase --onto upstream2 base &&
44 git rebase --onto base upstream2
47 test_expect_success
'setup rebasing many changes with split-index' '
48 git config core.splitIndex true
51 test_perf
'rebase a lot of unrelated changes with split-index' '
52 git rebase --onto upstream2 base &&
53 git rebase --onto base upstream2