mercurial/localrepo.py
changeset 7090 7b5c063b0b94
parent 7077 ccbd39cad3c3
child 7121 b801d6e5dc83
--- a/mercurial/localrepo.py	Sun Oct 12 15:21:08 2008 -0500
+++ b/mercurial/localrepo.py	Sun Oct 12 15:21:08 2008 -0500
@@ -965,13 +965,24 @@
                     del mf[fn]
             return mf
 
-        ctx1 = self[node1]
-        ctx2 = self[node2]
+        if isinstance(node1, context.changectx):
+            ctx1 = node1
+        else:
+            ctx1 = self[node1]
+        if isinstance(node2, context.changectx):
+            ctx2 = node2
+        else:
+            ctx2 = self[node2]
+
         working = ctx2 == self[None]
         parentworking = working and ctx1 == self['.']
         match = match or match_.always(self.root, self.getcwd())
         listignored, listclean, listunknown = ignored, clean, unknown
 
+        # load earliest manifest first for caching reasons
+        if not working and ctx2.rev() < ctx1.rev():
+            ctx2.manifest()
+
         if not parentworking:
             def bad(f, msg):
                 if f not in ctx1: