mercurial/filelog.py
branchstable
changeset 46376 b994db7c4d1e
parent 45811 a5206e71c536
child 46714 6f4a481f182a
--- a/mercurial/filelog.py	Tue Feb 16 15:44:51 2021 +0530
+++ b/mercurial/filelog.py	Fri Feb 19 17:52:04 2021 +0100
@@ -279,14 +279,12 @@
             return super(narrowfilelog, self).size(rev)
 
     def cmp(self, node, text):
-        different = super(narrowfilelog, self).cmp(node, text)
+        # We don't call `super` because narrow parents can be buggy in case of a
+        # ambiguous dirstate. Always take the slow path until there is a better
+        # fix, see issue6150.
 
-        # Because renamed() may lie, we may get false positives for
-        # different content. Check for this by comparing against the original
-        # renamed() implementation.
-        if different:
-            if super(narrowfilelog, self).renamed(node):
-                t2 = self.read(node)
-                return t2 != text
+        # Censored files compare against the empty file.
+        if self.iscensored(self.rev(node)):
+            return text != b''
 
-        return different
+        return self.read(node) != text