mercurial/context.py
changeset 19538 049d6b5a4a59
parent 19537 6e3e8575276d
child 19539 79671c46bb46
--- a/mercurial/context.py	Sat Jul 13 19:59:21 2013 -0500
+++ b/mercurial/context.py	Tue Aug 06 15:50:28 2013 -0500
@@ -24,7 +24,16 @@
     memctx: a context that represents changes in-memory and can also
             be committed."""
     def __new__(cls, repo, changeid='', *args, **kwargs):
-        return super(basectx, cls).__new__(cls)
+        if isinstance(changeid, basectx):
+            return changeid
+
+        o = super(basectx, cls).__new__(cls)
+
+        o._repo = repo
+        o._rev = nullrev
+        o._node = nullid
+
+        return o
 
 class changectx(basectx):
     """A changecontext object makes access to data related to a particular