blob: d7e3c1fa6e634878e24edf0cf9a71e4f07c4733e [file] [log] [blame]
Shawn Pearce83712342006-12-13 05:42:44 -05001#!/bin/sh
2
3test_description='Merge-recursive merging renames'
Johannes Schindelin5902f5f2020-11-18 23:44:38 +00004GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
Johannes Schindelin334afbc2020-11-18 23:44:19 +00005export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
6
Shawn Pearce83712342006-12-13 05:42:44 -05007. ./test-lib.sh
8
Elijah Newren42d180d2020-02-27 00:14:20 +00009test_expect_success 'setup' '
10 cat >A <<-\EOF &&
11 a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
12 b bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
13 c cccccccccccccccccccccccccccccccccccccccccccccccc
14 d dddddddddddddddddddddddddddddddddddddddddddddddd
15 e eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
16 f ffffffffffffffffffffffffffffffffffffffffffffffff
17 g gggggggggggggggggggggggggggggggggggggggggggggggg
18 h hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
19 i iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
20 j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
21 k kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
22 l llllllllllllllllllllllllllllllllllllllllllllllll
23 m mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
24 n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
25 o oooooooooooooooooooooooooooooooooooooooooooooooo
26 EOF
27
28 cat >M <<-\EOF &&
29 A AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
30 B BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
31 C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
32 D DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
33 E EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
34 F FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
35 G GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
36 H HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
37 I IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
38 J JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
39 K KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
40 L LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
41 M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
42 N NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
43 O OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
44 EOF
45
46 git add A M &&
47 git commit -m "initial has A and M" &&
48 git branch white &&
49 git branch red &&
50 git branch blue &&
51
52 git checkout white &&
53 sed -e "/^g /s/.*/g : white changes a line/" <A >B &&
54 sed -e "/^G /s/.*/G : colored branch changes a line/" <M >N &&
55 rm -f A M &&
56 git update-index --add --remove A B M N &&
57 git commit -m "white renames A->B, M->N" &&
58
59 git checkout red &&
60 echo created by red >R &&
61 git update-index --add R &&
62 git commit -m "red creates R" &&
63
64 git checkout blue &&
65 sed -e "/^o /s/.*/g : blue changes a line/" <A >B &&
66 rm -f A &&
67 mv B A &&
68 git update-index A &&
69 git commit -m "blue modify A" &&
70
Johannes Schindelin5902f5f2020-11-18 23:44:38 +000071 git checkout main
Shawn Pearce83712342006-12-13 05:42:44 -050072'
Shawn Pearce83712342006-12-13 05:42:44 -050073
74# This test broke in 65ac6e9c3f47807cb603af07a6a9e1a43bc119ae
Elijah Newren42d180d2020-02-27 00:14:20 +000075test_expect_success 'merge white into red (A->B,M->N)' '
Shawn Pearce83712342006-12-13 05:42:44 -050076 git checkout -b red-white red &&
77 git merge white &&
Jeff King2f69de52015-03-20 06:13:15 -040078 git write-tree &&
79 test_path_is_file B &&
80 test_path_is_file N &&
81 test_path_is_file R &&
82 test_path_is_missing A &&
83 test_path_is_missing M
Shawn Pearce83712342006-12-13 05:42:44 -050084'
85
Shawn O. Pearce183d7972007-02-04 00:45:54 -050086# This test broke in 8371234ecaaf6e14fe3f2082a855eff1bbd79ae9
Elijah Newren42d180d2020-02-27 00:14:20 +000087test_expect_success 'merge blue into white (A->B, mod A, A untracked)' '
Shawn O. Pearce183d7972007-02-04 00:45:54 -050088 git checkout -b white-blue white &&
89 echo dirty >A &&
90 git merge blue &&
Jeff King2f69de52015-03-20 06:13:15 -040091 git write-tree &&
92 test_path_is_file A &&
93 echo dirty >expect &&
94 test_cmp expect A &&
95 test_path_is_file B &&
96 test_path_is_file N &&
97 test_path_is_missing M
Shawn O. Pearce183d7972007-02-04 00:45:54 -050098'
99
Shawn Pearce83712342006-12-13 05:42:44 -0500100test_done