basefilectx: move __eq__ from filectx
authorSean Farley <sean.michael.farley@gmail.com>
Sun, 11 Aug 2013 22:49:03 -0500
changeset 19582 bda1d48bb07f
parent 19581 fe50d21be01a
child 19583 e5074d82afc9
basefilectx: move __eq__ from filectx We also add type checking for extra protection.
mercurial/context.py
--- a/mercurial/context.py	Sun Aug 11 22:47:39 2013 -0500
+++ b/mercurial/context.py	Sun Aug 11 22:49:03 2013 -0500
@@ -467,6 +467,13 @@
         except AttributeError:
             return id(self)
 
+    def __eq__(self, other):
+        try:
+            return (type(self) == type(other) and self._path == other._path
+                    and self._filenode == other._filenode)
+        except AttributeError:
+            return False
+
 class filectx(basefilectx):
     """A filecontext object makes access to data related to a particular
        filerevision convenient."""
@@ -516,13 +523,6 @@
             # considered when solving linkrev issue are on the table.
             return changectx(self._repo.unfiltered(), self._changeid)
 
-    def __eq__(self, other):
-        try:
-            return (self._path == other._path
-                    and self._filenode == other._filenode)
-        except AttributeError:
-            return False
-
     def __ne__(self, other):
         return not (self == other)