diff -r a8d5af707656 -r 6b675c781c6d mercurial/merge.py --- a/mercurial/merge.py Mon Jun 08 18:14:44 2009 -0500 +++ b/mercurial/merge.py Mon Jun 08 18:14:44 2009 -0500 @@ -213,7 +213,9 @@ else: # case 4,21 A/B/B act("local moved to " + f2, "m", f, f2, f, fmerge(f, f2, f2), False) - elif f in ma and not n[20:]: + elif n[20:] == "a": # added, no remote + act("remote deleted", "f", f) + elif f in ma: # clean, a different, no remote if n != ma[f]: if repo.ui.prompt( _(" local changed %s which remote deleted\n" @@ -222,10 +224,8 @@ act("prompt delete", "r", f) else: act("prompt keep", "a", f) - else: + elif n[20:] != "u": act("other deleted", "r", f) - elif n[20:] == "a": # only forget locally-added - act("remote deleted", "f", f) else: # file is created on branch or in working directory if (overwrite and n[20:] != "u") or (backwards and not n[20:]):