mercurial/merge.py
changeset 20639 1df033640a8e
parent 20620 bedb9f1a6b4e
child 20640 52929dcdd512
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