1#!/bin/sh
2
3test_description='Tests rebase performance'
4. ./perf-lib.sh
5
6test_perf_default_repo
7
8test_expect_success 'setup' '
9 git checkout -f -b base &&
10 git checkout -b to-rebase &&
11 git checkout -b upstream &&
12 for i in $(seq 100)
13 do
14 # simulate huge diffs
15 echo change$i >unrelated-file$i &&
16 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 seq 1000 | tac >>unrelated-file$i &&
22 git add unrelated-file$i &&
23 test_tick &&
24 git commit -m commit$i-reverse unrelated-file$i ||
25 break
26 done &&
27 git checkout to-rebase &&
28 test_commit our-patch interesting-file
29'
30
31test_perf 'rebase on top of a lot of unrelated changes' '
32 git rebase --onto upstream HEAD^ &&
33 git rebase --onto base HEAD^
34'
35
36test_done