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 |