merge: support calculating merge actions against non-working contexts
authorDavid Schleimer <dschleimer@fb.com>
Tue, 04 Dec 2012 12:54:18 -0800
changeset 18036 8b846dbc57b6
parent 18035 5881d5b7552f
child 18037 c8326ffdcb4f
merge: support calculating merge actions against non-working contexts This is not currently used. It is instead a pre-requisite to performing non-conflicting grafts in memory, which a subsequent patch will do.
mercurial/context.py
mercurial/merge.py
--- a/mercurial/context.py	Tue Dec 04 12:54:18 2012 -0800
+++ b/mercurial/context.py	Tue Dec 04 12:54:18 2012 -0800
@@ -355,6 +355,9 @@
     def dirs(self):
         return self._dirs
 
+    def dirty(self):
+        return False
+
 class filectx(object):
     """A filecontext object makes access to data related to a particular
        filerevision convenient."""
--- a/mercurial/merge.py	Tue Dec 04 12:54:18 2012 -0800
+++ b/mercurial/merge.py	Tue Dec 04 12:54:18 2012 -0800
@@ -461,7 +461,8 @@
             _checkcollision(mctx, tctx)
     if not force:
         _checkunknown(repo, tctx, mctx)
-    action += _forgetremoved(tctx, mctx, branchmerge)
+    if tctx.rev() is None:
+        action += _forgetremoved(tctx, mctx, branchmerge)
     action += manifestmerge(repo, tctx, mctx,
                             ancestor,
                             force and not branchmerge,