182 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
182 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
183 (branch merge, don't forget to commit) |
183 (branch merge, don't forget to commit) |
184 $ hg status |
184 $ hg status |
185 M newfile |
185 M newfile |
186 $ cd .. |
186 $ cd .. |
|
187 |
|
188 Create x and y, then modify y and rename x to z on one side of merge, and |
|
189 modify x and rename y to z on the other side. |
|
190 $ hg init conflicting-target |
|
191 $ cd conflicting-target |
|
192 $ echo x > x |
|
193 $ echo y > y |
|
194 $ hg ci -Aqm 'add x and y' |
|
195 $ hg mv x z |
|
196 $ echo foo >> y |
|
197 $ hg ci -qm 'modify y, rename x to z' |
|
198 $ hg co -q 0 |
|
199 $ hg mv y z |
|
200 $ echo foo >> x |
|
201 $ hg ci -qm 'modify x, rename y to z' |
|
202 # We should probably tell the user about the conflicting rename sources. |
|
203 # Depending on which side they pick, we should take that rename and get |
|
204 # the changes to the source from the other side. The unchanged file should |
|
205 # remain. |
|
206 # we should not get the prompts about modify/delete conflicts |
|
207 $ hg merge --debug 1 -t :merge3 |
|
208 all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
209 src: 'x' -> dst: 'z' |
|
210 checking for directory renames |
|
211 resolving manifests |
|
212 branchmerge: True, force: False, partial: False |
|
213 ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508 |
|
214 preserving x for resolve of x |
|
215 preserving z for resolve of z |
|
216 x: prompt changed/deleted -> m (premerge) |
|
217 picked tool ':prompt' for x (binary False symlink False changedelete True) |
|
218 file 'x' was deleted in other [merge rev] but was modified in local [working copy]. |
|
219 You can use (c)hanged version, (d)elete, or leave (u)nresolved. |
|
220 What do you want to do? u |
|
221 y: prompt deleted/changed -> m (premerge) |
|
222 picked tool ':prompt' for y (binary False symlink False changedelete True) |
|
223 file 'y' was deleted in local [working copy] but was modified in other [merge rev]. |
|
224 You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. |
|
225 What do you want to do? u |
|
226 z: both created -> m (premerge) |
|
227 picked tool ':merge3' for z (binary False symlink False changedelete False) |
|
228 merging z |
|
229 my z@07fcbc9a74ed+ other z@f21419739508 ancestor z@000000000000 |
|
230 z: both created -> m (merge) |
|
231 picked tool ':merge3' for z (binary False symlink False changedelete False) |
|
232 my z@07fcbc9a74ed+ other z@f21419739508 ancestor z@000000000000 |
|
233 warning: conflicts while merging z! (edit, then use 'hg resolve --mark') |
|
234 0 files updated, 0 files merged, 0 files removed, 3 files unresolved |
|
235 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon |
|
236 [1] |
|
237 $ ls |
|
238 x |
|
239 y |
|
240 z |
|
241 z.orig |
|
242 $ cat x |
|
243 x |
|
244 foo |
|
245 $ cat y |
|
246 y |
|
247 foo |
|
248 # 'z' should have had the added 'foo' line |
|
249 $ cat z |
|
250 <<<<<<< working copy: 07fcbc9a74ed - test: modify x, rename y to z |
|
251 y |
|
252 ||||||| base |
|
253 ======= |
|
254 x |
|
255 >>>>>>> merge rev: f21419739508 - test: modify y, rename x to z |