aa6c44ce4f5855bd4f18f737c7b1239407549eab
[git/git.git] / t / t7405-submodule-merge.sh
1 #!/bin/sh
2
3 test_description='merging with submodules'
4
5 . ./test-lib.sh
6
7 #
8 # history
9 #
10 # a --- c
11 # / \ /
12 # root X
13 # \ / \
14 # b --- d
15 #
16
17 test_expect_success setup '
18
19 mkdir sub &&
20 (cd sub &&
21 git init &&
22 echo original > file &&
23 git add file &&
24 test_tick &&
25 git commit -m sub-root) &&
26 git add sub &&
27 test_tick &&
28 git commit -m root &&
29
30 git checkout -b a master &&
31 (cd sub &&
32 echo A > file &&
33 git add file &&
34 test_tick &&
35 git commit -m sub-a) &&
36 git add sub &&
37 test_tick &&
38 git commit -m a &&
39
40 git checkout -b b master &&
41 (cd sub &&
42 echo B > file &&
43 git add file &&
44 test_tick &&
45 git commit -m sub-b) &&
46 git add sub &&
47 test_tick &&
48 git commit -m b
49
50 git checkout -b c a &&
51 git merge -s ours b &&
52
53 git checkout -b d b &&
54 git merge -s ours a
55 '
56
57 test_expect_failure 'merging with modify/modify conflict' '
58
59 git checkout -b test1 a &&
60 test_must_fail git merge b &&
61 test -f .git/MERGE_MSG &&
62 git diff
63
64 '
65
66 test_expect_success 'merging with a modify/modify conflict between merge bases' '
67
68 git reset --hard HEAD &&
69 git checkout -b test2 c &&
70 git merge d
71
72 '
73
74 test_done