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.
56 lines
1.4 KiB
56 lines
1.4 KiB
#!/bin/sh |
|
|
|
test_description='Tests rebase performance' |
|
. ./perf-lib.sh |
|
|
|
test_perf_default_repo |
|
|
|
test_expect_success 'setup rebasing on top of a lot of changes' ' |
|
git checkout -f -B base && |
|
git checkout -B to-rebase && |
|
git checkout -B upstream && |
|
for i in $(test_seq 100) |
|
do |
|
# simulate huge diffs |
|
echo change$i >unrelated-file$i && |
|
test_seq 1000 >>unrelated-file$i && |
|
git add unrelated-file$i && |
|
test_tick && |
|
git commit -m commit$i unrelated-file$i && |
|
echo change$i >unrelated-file$i && |
|
test_seq 1000 | sort -nr >>unrelated-file$i && |
|
git add unrelated-file$i && |
|
test_tick && |
|
git commit -m commit$i-reverse unrelated-file$i || |
|
return 1 |
|
done && |
|
git checkout to-rebase && |
|
test_commit our-patch interesting-file |
|
' |
|
|
|
test_perf 'rebase on top of a lot of unrelated changes' ' |
|
git rebase --onto upstream HEAD^ && |
|
git rebase --onto base HEAD^ |
|
' |
|
|
|
test_expect_success 'setup rebasing many changes without split-index' ' |
|
git config core.splitIndex false && |
|
git checkout -B upstream2 to-rebase && |
|
git checkout -B to-rebase2 upstream |
|
' |
|
|
|
test_perf 'rebase a lot of unrelated changes without split-index' ' |
|
git rebase --onto upstream2 base && |
|
git rebase --onto base upstream2 |
|
' |
|
|
|
test_expect_success 'setup rebasing many changes with split-index' ' |
|
git config core.splitIndex true |
|
' |
|
|
|
test_perf 'rebase a lot of unrelated changes with split-index' ' |
|
git rebase --onto upstream2 base && |
|
git rebase --onto base upstream2 |
|
' |
|
|
|
test_done
|
|
|