Mercurial > hg
comparison tests/test-merge-changedelete.t @ 27125:969ca40cad1d
test-merge-changedelete.t: add a file with regular merge conflicts
In upcoming patches we're going to move change/delete conflicts to the resolve
phase -- it will be important to see how regular conflicts interact with
change/delete ones.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Mon, 23 Nov 2015 13:43:14 -0800 |
parents | fdfc50d09e8d |
children | 72b4e1bf8f28 |
comparison
equal
deleted
inserted
replaced
27124:9c870e3efab7 | 27125:969ca40cad1d |
---|---|
8 Make sure HGMERGE doesn't interfere with the test | 8 Make sure HGMERGE doesn't interfere with the test |
9 $ unset HGMERGE | 9 $ unset HGMERGE |
10 | 10 |
11 $ status() { | 11 $ status() { |
12 > echo "--- status ---" | 12 > echo "--- status ---" |
13 > hg st -A file1 file2 | 13 > hg st -A file1 file2 file3 |
14 > for file in file1 file2; do | 14 > for file in file1 file2 file3; do |
15 > if [ -f $file ]; then | 15 > if [ -f $file ]; then |
16 > echo "--- $file ---" | 16 > echo "--- $file ---" |
17 > cat $file | 17 > cat $file |
18 > else | 18 > else |
19 > echo "*** $file does not exist" | 19 > echo "*** $file does not exist" |
23 | 23 |
24 $ hg init | 24 $ hg init |
25 | 25 |
26 $ echo 1 > file1 | 26 $ echo 1 > file1 |
27 $ echo 2 > file2 | 27 $ echo 2 > file2 |
28 $ hg ci -Am 'added file1 and file2' | 28 $ echo 3 > file3 |
29 $ hg ci -Am 'added files' | |
29 adding file1 | 30 adding file1 |
30 adding file2 | 31 adding file2 |
32 adding file3 | |
31 | 33 |
32 $ hg rm file1 | 34 $ hg rm file1 |
33 $ echo changed >> file2 | 35 $ echo changed >> file2 |
34 $ hg ci -m 'removed file1, changed file2' | 36 $ echo changed1 >> file3 |
37 $ hg ci -m 'removed file1, changed file2, changed file3' | |
35 | 38 |
36 $ hg co 0 | 39 $ hg co 0 |
37 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 40 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
38 | 41 |
39 $ echo changed >> file1 | 42 $ echo changed >> file1 |
40 $ hg rm file2 | 43 $ hg rm file2 |
41 $ hg ci -m 'changed file1, removed file2' | 44 $ echo changed2 >> file3 |
45 $ hg ci -m 'changed file1, removed file2, changed file3' | |
42 created new head | 46 created new head |
43 | 47 |
44 | 48 |
45 Non-interactive merge: | 49 Non-interactive merge: |
46 | 50 |
47 $ hg merge -y | 51 $ hg merge -y |
48 local changed file1 which remote deleted | 52 local changed file1 which remote deleted |
49 use (c)hanged version or (d)elete? c | 53 use (c)hanged version or (d)elete? c |
50 remote changed file2 which local deleted | 54 remote changed file2 which local deleted |
51 use (c)hanged version or leave (d)eleted? c | 55 use (c)hanged version or leave (d)eleted? c |
52 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 56 merging file3 |
53 (branch merge, don't forget to commit) | 57 warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') |
58 1 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
59 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon | |
60 [1] | |
54 | 61 |
55 $ status | 62 $ status |
56 --- status --- | 63 --- status --- |
57 M file2 | 64 M file2 |
65 M file3 | |
58 C file1 | 66 C file1 |
59 --- file1 --- | 67 --- file1 --- |
60 1 | 68 1 |
61 changed | 69 changed |
62 --- file2 --- | 70 --- file2 --- |
63 2 | 71 2 |
64 changed | 72 changed |
73 --- file3 --- | |
74 3 | |
75 <<<<<<< local: 13910f48cf7b - test: changed file1, removed file2, changed file3 | |
76 changed2 | |
77 ======= | |
78 changed1 | |
79 >>>>>>> other: 10f9a0a634e8 - test: removed file1, changed file2, changed file3 | |
65 | 80 |
66 | 81 |
67 Interactive merge: | 82 Interactive merge: |
68 | 83 |
69 $ hg co -C | 84 $ hg co -C |
70 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | 85 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
71 | 86 |
72 $ hg merge --config ui.interactive=true <<EOF | 87 $ hg merge --config ui.interactive=true <<EOF |
73 > c | 88 > c |
74 > d | 89 > d |
75 > EOF | 90 > EOF |
76 local changed file1 which remote deleted | 91 local changed file1 which remote deleted |
77 use (c)hanged version or (d)elete? c | 92 use (c)hanged version or (d)elete? c |
78 remote changed file2 which local deleted | 93 remote changed file2 which local deleted |
79 use (c)hanged version or leave (d)eleted? d | 94 use (c)hanged version or leave (d)eleted? d |
80 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | 95 merging file3 |
81 (branch merge, don't forget to commit) | 96 warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') |
97 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
98 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon | |
99 [1] | |
82 | 100 |
83 $ status | 101 $ status |
84 --- status --- | 102 --- status --- |
85 file2: * (glob) | 103 file2: * (glob) |
104 M file3 | |
86 C file1 | 105 C file1 |
87 --- file1 --- | 106 --- file1 --- |
88 1 | 107 1 |
89 changed | 108 changed |
90 *** file2 does not exist | 109 *** file2 does not exist |
110 --- file3 --- | |
111 3 | |
112 <<<<<<< local: 13910f48cf7b - test: changed file1, removed file2, changed file3 | |
113 changed2 | |
114 ======= | |
115 changed1 | |
116 >>>>>>> other: 10f9a0a634e8 - test: removed file1, changed file2, changed file3 | |
91 | 117 |
92 | 118 |
93 Interactive merge with bad input: | 119 Interactive merge with bad input: |
94 | 120 |
95 $ hg co -C | 121 $ hg co -C |
96 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | 122 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
97 | 123 |
98 $ hg merge --config ui.interactive=true <<EOF | 124 $ hg merge --config ui.interactive=true <<EOF |
99 > foo | 125 > foo |
100 > bar | 126 > bar |
101 > d | 127 > d |
113 remote changed file2 which local deleted | 139 remote changed file2 which local deleted |
114 use (c)hanged version or leave (d)eleted? baz | 140 use (c)hanged version or leave (d)eleted? baz |
115 unrecognized response | 141 unrecognized response |
116 remote changed file2 which local deleted | 142 remote changed file2 which local deleted |
117 use (c)hanged version or leave (d)eleted? c | 143 use (c)hanged version or leave (d)eleted? c |
118 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | 144 merging file3 |
119 (branch merge, don't forget to commit) | 145 warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') |
146 1 files updated, 0 files merged, 1 files removed, 1 files unresolved | |
147 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon | |
148 [1] | |
120 | 149 |
121 $ status | 150 $ status |
122 --- status --- | 151 --- status --- |
123 M file2 | 152 M file2 |
153 M file3 | |
124 R file1 | 154 R file1 |
125 *** file1 does not exist | 155 *** file1 does not exist |
126 --- file2 --- | 156 --- file2 --- |
127 2 | 157 2 |
128 changed | 158 changed |
159 --- file3 --- | |
160 3 | |
161 <<<<<<< local: 13910f48cf7b - test: changed file1, removed file2, changed file3 | |
162 changed2 | |
163 ======= | |
164 changed1 | |
165 >>>>>>> other: 10f9a0a634e8 - test: removed file1, changed file2, changed file3 | |
129 | 166 |
130 | 167 |
131 Interactive merge with not enough input: | 168 Interactive merge with not enough input: |
132 | 169 |
133 $ hg co -C | 170 $ hg co -C |
134 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | 171 2 files updated, 0 files merged, 1 files removed, 0 files unresolved |
135 | 172 |
136 $ hg merge --config ui.interactive=true <<EOF | 173 $ hg merge --config ui.interactive=true <<EOF |
137 > d | 174 > d |
138 > EOF | 175 > EOF |
139 local changed file1 which remote deleted | 176 local changed file1 which remote deleted |
144 | 181 |
145 $ status | 182 $ status |
146 --- status --- | 183 --- status --- |
147 file2: * (glob) | 184 file2: * (glob) |
148 C file1 | 185 C file1 |
186 C file3 | |
149 --- file1 --- | 187 --- file1 --- |
150 1 | 188 1 |
151 changed | 189 changed |
152 *** file2 does not exist | 190 *** file2 does not exist |
191 --- file3 --- | |
192 3 | |
193 changed2 | |
153 | 194 |
154 Non-interactive linear update | 195 Non-interactive linear update |
155 | 196 |
156 $ hg co -C 0 | 197 $ hg co -C 0 |
157 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 198 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
158 $ echo changed >> file1 | 199 $ echo changed >> file1 |
159 $ hg rm file2 | 200 $ hg rm file2 |
160 $ hg update 1 -y | 201 $ hg update 1 -y |
161 local changed file1 which remote deleted | 202 local changed file1 which remote deleted |
162 use (c)hanged version or (d)elete? c | 203 use (c)hanged version or (d)elete? c |
163 remote changed file2 which local deleted | 204 remote changed file2 which local deleted |
164 use (c)hanged version or leave (d)eleted? c | 205 use (c)hanged version or leave (d)eleted? c |
165 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 206 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
166 $ status | 207 $ status |
167 --- status --- | 208 --- status --- |
168 A file1 | 209 A file1 |
169 C file2 | 210 C file2 |
211 C file3 | |
170 --- file1 --- | 212 --- file1 --- |
171 1 | 213 1 |
172 changed | 214 changed |
173 --- file2 --- | 215 --- file2 --- |
174 2 | 216 2 |
175 changed | 217 changed |
218 --- file3 --- | |
219 3 | |
220 changed1 |