Mercurial > hg
comparison tests/test-rename-merge1.t @ 44161:d7622fdec3b5
tests: test merge of renames of different sources to same target
This is a really obscure scenario, but let's still have it tested so
we know when it changes.
Differential Revision: https://phab.mercurial-scm.org/D7985
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 24 Jan 2020 07:00:45 -0800 |
parents | ab416b5d9b91 |
children | 5de70f798ea7 |
comparison
equal
deleted
inserted
replaced
44160:abcc82bf0717 | 44161:d7622fdec3b5 |
---|---|
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 |