Merge branch 'sb/maint-octopus' into maint
[git] / t / t6036-recursive-corner-cases.sh
1 #!/bin/sh
2
3 test_description='recursive merge corner cases'
4
5 . ./test-lib.sh
6
7 #
8 #  L1  L2
9 #   o---o
10 #  / \ / \
11 # o   X   ?
12 #  \ / \ /
13 #   o---o
14 #  R1  R2
15 #
16
17 test_expect_success setup '
18         ten="0 1 2 3 4 5 6 7 8 9"
19         for i in $ten
20         do
21                 echo line $i in a sample file
22         done >one &&
23         for i in $ten
24         do
25                 echo line $i in another sample file
26         done >two &&
27         git add one two &&
28         test_tick && git commit -m initial &&
29
30         git branch L1 &&
31         git checkout -b R1 &&
32         git mv one three &&
33         test_tick && git commit -m R1 &&
34
35         git checkout L1 &&
36         git mv two three &&
37         test_tick && git commit -m L1 &&
38
39         git checkout L1^0 &&
40         test_tick && git merge -s ours R1 &&
41         git tag L2 &&
42
43         git checkout R1^0 &&
44         test_tick && git merge -s ours L1 &&
45         git tag R2
46 '
47
48 test_expect_success merge '
49         git reset --hard &&
50         git checkout L2^0 &&
51
52         test_must_fail git merge -s recursive R2^0
53 '
54
55 test_done