]>
Commit | Line | Data |
---|---|---|
8371234e SP |
1 | #!/bin/sh |
2 | ||
3 | test_description='Merge-recursive merging renames' | |
4 | . ./test-lib.sh | |
5 | ||
6 | test_expect_success setup \ | |
7 | ' | |
8 | cat >A <<\EOF && | |
9 | a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
10 | b bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | |
11 | c cccccccccccccccccccccccccccccccccccccccccccccccc | |
12 | d dddddddddddddddddddddddddddddddddddddddddddddddd | |
13 | e eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee | |
14 | f ffffffffffffffffffffffffffffffffffffffffffffffff | |
15 | g gggggggggggggggggggggggggggggggggggggggggggggggg | |
16 | h hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh | |
17 | i iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | |
18 | j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj | |
19 | k kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk | |
20 | l llllllllllllllllllllllllllllllllllllllllllllllll | |
21 | m mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm | |
22 | n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn | |
23 | o oooooooooooooooooooooooooooooooooooooooooooooooo | |
24 | EOF | |
25 | ||
26 | cat >M <<\EOF && | |
27 | A AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
28 | B BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB | |
29 | C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC | |
30 | D DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD | |
31 | E EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE | |
32 | F FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
33 | G GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG | |
34 | H HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH | |
35 | I IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII | |
36 | J JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ | |
37 | K KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK | |
38 | L LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL | |
39 | M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM | |
40 | N NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN | |
41 | O OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO | |
42 | EOF | |
43 | ||
44 | git add A M && | |
45 | git commit -m "initial has A and M" && | |
46 | git branch white && | |
47 | git branch red && | |
183d7972 | 48 | git branch blue && |
8371234e SP |
49 | |
50 | git checkout white && | |
51 | sed -e "/^g /s/.*/g : white changes a line/" <A >B && | |
52 | sed -e "/^G /s/.*/G : colored branch changes a line/" <M >N && | |
53 | rm -f A M && | |
54 | git update-index --add --remove A B M N && | |
55 | git commit -m "white renames A->B, M->N" && | |
56 | ||
57 | git checkout red && | |
58 | echo created by red >R && | |
59 | git update-index --add R && | |
60 | git commit -m "red creates R" && | |
61 | ||
183d7972 SP |
62 | git checkout blue && |
63 | sed -e "/^o /s/.*/g : blue changes a line/" <A >B && | |
64 | rm -f A && | |
65 | mv B A && | |
66 | git update-index A && | |
67 | git commit -m "blue modify A" && | |
68 | ||
8371234e SP |
69 | git checkout master' |
70 | ||
71 | # This test broke in 65ac6e9c3f47807cb603af07a6a9e1a43bc119ae | |
72 | test_expect_success 'merge white into red (A->B,M->N)' \ | |
73 | ' | |
74 | git checkout -b red-white red && | |
75 | git merge white && | |
2f69de5b JK |
76 | git write-tree && |
77 | test_path_is_file B && | |
78 | test_path_is_file N && | |
79 | test_path_is_file R && | |
80 | test_path_is_missing A && | |
81 | test_path_is_missing M | |
8371234e SP |
82 | ' |
83 | ||
183d7972 SP |
84 | # This test broke in 8371234ecaaf6e14fe3f2082a855eff1bbd79ae9 |
85 | test_expect_success 'merge blue into white (A->B, mod A, A untracked)' \ | |
86 | ' | |
87 | git checkout -b white-blue white && | |
88 | echo dirty >A && | |
89 | git merge blue && | |
2f69de5b JK |
90 | git write-tree && |
91 | test_path_is_file A && | |
92 | echo dirty >expect && | |
93 | test_cmp expect A && | |
94 | test_path_is_file B && | |
95 | test_path_is_file N && | |
96 | test_path_is_missing M | |
183d7972 SP |
97 | ' |
98 | ||
8371234e | 99 | test_done |