]> git.ipfire.org Git - thirdparty/git.git/blame - t/t6034-merge-rename-nocruft.sh
path.c: don't call the match function without value in trie_find()
[thirdparty/git.git] / t / t6034-merge-rename-nocruft.sh
CommitLineData
8371234e
SP
1#!/bin/sh
2
3test_description='Merge-recursive merging renames'
4. ./test-lib.sh
5
6test_expect_success setup \
7'
8cat >A <<\EOF &&
9a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
10b bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
11c cccccccccccccccccccccccccccccccccccccccccccccccc
12d dddddddddddddddddddddddddddddddddddddddddddddddd
13e eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
14f ffffffffffffffffffffffffffffffffffffffffffffffff
15g gggggggggggggggggggggggggggggggggggggggggggggggg
16h hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
17i iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
18j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
19k kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
20l llllllllllllllllllllllllllllllllllllllllllllllll
21m mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
22n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
23o oooooooooooooooooooooooooooooooooooooooooooooooo
24EOF
25
26cat >M <<\EOF &&
27A AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
28B BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
29C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
30D DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
31E EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
32F FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
33G GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
34H HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
35I IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
36J JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
37K KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
38L LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
39M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
40N NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
41O OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
42EOF
43
44git add A M &&
45git commit -m "initial has A and M" &&
46git branch white &&
47git branch red &&
183d7972 48git branch blue &&
8371234e
SP
49
50git checkout white &&
51sed -e "/^g /s/.*/g : white changes a line/" <A >B &&
52sed -e "/^G /s/.*/G : colored branch changes a line/" <M >N &&
53rm -f A M &&
54git update-index --add --remove A B M N &&
55git commit -m "white renames A->B, M->N" &&
56
57git checkout red &&
58echo created by red >R &&
59git update-index --add R &&
60git commit -m "red creates R" &&
61
183d7972
SP
62git checkout blue &&
63sed -e "/^o /s/.*/g : blue changes a line/" <A >B &&
64rm -f A &&
65mv B A &&
66git update-index A &&
67git commit -m "blue modify A" &&
68
8371234e
SP
69git checkout master'
70
71# This test broke in 65ac6e9c3f47807cb603af07a6a9e1a43bc119ae
72test_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
85test_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 99test_done