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