changeset 3318:c5075ad5e3e9

merge: use contexts in checkunknown and forgetremoved
author Matt Mackall <mpm@selenic.com>
date Tue, 10 Oct 2006 01:43:58 -0500
parents 966632304dde
children 6c68bc1e7873
files mercurial/merge.py
diffstat 1 files changed, 9 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/merge.py	Tue Oct 10 01:16:06 2006 -0500
+++ b/mercurial/merge.py	Tue Oct 10 01:43:58 2006 -0500
@@ -63,17 +63,18 @@
     os.unlink(c)
     return r
 
-def checkunknown(repo, m2, wctx):
+def checkunknown(wctx, mctx):
     """
     check for collisions between unknown files and files in m2
     """
+    man = mctx.manifest()
     for f in wctx.unknown():
-        if f in m2:
-            if repo.file(f).cmp(m2[f], repo.wread(f)):
+        if f in man:
+            if mctx.filectx(f).cmp(wctx.filectx(f).data()):
                 raise util.Abort(_("'%s' already exists in the working"
                                    " dir and differs from remote") % f)
 
-def forgetremoved(m2, wctx):
+def forgetremoved(wctx, mctx):
     """
     Forget removed files
 
@@ -85,9 +86,9 @@
     """
 
     action = []
-
+    man = mctx.manifest()
     for f in wctx.deleted() + wctx.removed():
-        if f not in m2:
+        if f not in man:
             action.append((f, "f"))
 
     return action
@@ -383,9 +384,6 @@
         if wc.modified() or wc.added() or wc.removed():
             raise util.Abort(_("outstanding uncommitted changes"))
 
-    m1 = wc.manifest()
-    m2 = p2.manifest()
-
     # resolve the manifest to determine which files
     # we care about merging
     repo.ui.note(_("resolving manifests\n"))
@@ -396,9 +394,9 @@
     action = []
 
     if not force:
-        checkunknown(repo, m2, wc)
+        checkunknown(wc, p2)
     if not branchmerge:
-        action += forgetremoved(m2, wc)
+        action += forgetremoved(wc, p2)
 
     action += manifestmerge(repo, wc, p2, pa, overwrite, partial)