Mercurial > hg
comparison mercurial/merge.py @ 20639:1df033640a8e
merge: handle acceptremove of create+delete early in manifest merge
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Fri, 28 Feb 2014 02:26:03 +0100 |
parents | bedb9f1a6b4e |
children | 52929dcdd512 |
comparison
equal
deleted
inserted
replaced
20638:b228ad1f79d7 | 20639:1df033640a8e |
---|---|
421 f2 = copy[f] | 421 f2 = copy[f] |
422 actions.append((f, "m", (f2, f, False), | 422 actions.append((f, "m", (f2, f, False), |
423 "local copied/moved to " + f2)) | 423 "local copied/moved to " + f2)) |
424 elif n1 and f in ma: # clean, a different, no remote | 424 elif n1 and f in ma: # clean, a different, no remote |
425 if n1 != ma[f]: | 425 if n1 != ma[f]: |
426 prompts.append((f, "cd")) # prompt changed/deleted | 426 if acceptremote: |
427 actions.append((f, "r", None, "remote delete")) | |
428 else: | |
429 prompts.append((f, "cd")) # prompt changed/deleted | |
427 elif n1[20:] == "a": # added, no remote | 430 elif n1[20:] == "a": # added, no remote |
428 actions.append((f, "f", None, "remote deleted")) | 431 actions.append((f, "f", None, "remote deleted")) |
429 else: | 432 else: |
430 actions.append((f, "r", None, "other deleted")) | 433 actions.append((f, "r", None, "other deleted")) |
431 elif n2 and f in movewithdir: | 434 elif n2 and f in movewithdir: |
468 different = _checkunknownfile(repo, wctx, p2, f) | 471 different = _checkunknownfile(repo, wctx, p2, f) |
469 if not force and different: | 472 if not force and different: |
470 aborts.append((f, "ud")) | 473 aborts.append((f, "ud")) |
471 else: | 474 else: |
472 # if different: old untracked f may be overwritten and lost | 475 # if different: old untracked f may be overwritten and lost |
473 prompts.append((f, "dc")) # prompt deleted/changed | 476 if acceptremote: |
477 actions.append((f, "g", (m2.flags(f),), | |
478 "remote recreating")) | |
479 else: | |
480 prompts.append((f, "dc")) # prompt deleted/changed | |
474 | 481 |
475 for f, m in sorted(aborts): | 482 for f, m in sorted(aborts): |
476 if m == "ud": | 483 if m == "ud": |
477 repo.ui.warn(_("%s: untracked file differs\n") % f) | 484 repo.ui.warn(_("%s: untracked file differs\n") % f) |
478 else: assert False, m | 485 else: assert False, m |
488 else: | 495 else: |
489 _checkcollision(repo, m1, actions, prompts) | 496 _checkcollision(repo, m1, actions, prompts) |
490 | 497 |
491 for f, m in sorted(prompts): | 498 for f, m in sorted(prompts): |
492 if m == "cd": | 499 if m == "cd": |
493 if acceptremote: | 500 if repo.ui.promptchoice( |
494 actions.append((f, "r", None, "remote delete")) | |
495 elif repo.ui.promptchoice( | |
496 _("local changed %s which remote deleted\n" | 501 _("local changed %s which remote deleted\n" |
497 "use (c)hanged version or (d)elete?" | 502 "use (c)hanged version or (d)elete?" |
498 "$$ &Changed $$ &Delete") % f, 0): | 503 "$$ &Changed $$ &Delete") % f, 0): |
499 actions.append((f, "r", None, "prompt delete")) | 504 actions.append((f, "r", None, "prompt delete")) |
500 else: | 505 else: |
501 actions.append((f, "a", None, "prompt keep")) | 506 actions.append((f, "a", None, "prompt keep")) |
502 elif m == "dc": | 507 elif m == "dc": |
503 if acceptremote: | 508 if repo.ui.promptchoice( |
504 actions.append((f, "g", (m2.flags(f),), "remote recreating")) | |
505 elif repo.ui.promptchoice( | |
506 _("remote changed %s which local deleted\n" | 509 _("remote changed %s which local deleted\n" |
507 "use (c)hanged version or leave (d)eleted?" | 510 "use (c)hanged version or leave (d)eleted?" |
508 "$$ &Changed $$ &Deleted") % f, 0) == 0: | 511 "$$ &Changed $$ &Deleted") % f, 0) == 0: |
509 actions.append((f, "g", (m2.flags(f),), "prompt recreating")) | 512 actions.append((f, "g", (m2.flags(f),), "prompt recreating")) |
510 else: assert False, m | 513 else: assert False, m |