diff mercurial/filelog.py @ 40006:422beffd71ba

storageutil: extract filelog.cmp() to a standalone function As part of implementing an alternate storage backend, I found myself reimplementing this code. With a little massaging, we can extract filelog.cmp() to a standalone function. As part of this, the call to revlog.cmp() was inlined (it is just a 2-line function). I also tweaked some variable names to improve readability. I'll further tweak names in a subsequent commit. Differential Revision: https://phab.mercurial-scm.org/D4801
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 28 Sep 2018 11:47:53 -0700
parents 1d97a332c6d9
children 1470183068b8
line wrap: on
line diff
--- a/mercurial/filelog.py	Fri Sep 28 11:37:49 2018 -0700
+++ b/mercurial/filelog.py	Fri Sep 28 11:47:53 2018 -0700
@@ -135,26 +135,7 @@
 
         returns True if text is different than what is stored.
         """
-
-        t = text
-        if text.startswith('\1\n'):
-            t = '\1\n\1\n' + text
-
-        samehashes = not self._revlog.cmp(node, t)
-        if samehashes:
-            return False
-
-        # censored files compare against the empty file
-        if self.iscensored(self.rev(node)):
-            return text != ''
-
-        # renaming a file produces a different hash, even if the data
-        # remains unchanged. Check if it's the case (slow):
-        if self.renamed(node):
-            t2 = self.read(node)
-            return t2 != text
-
-        return True
+        return storageutil.filerevisiondifferent(self, node, text)
 
     def verifyintegrity(self, state):
         return self._revlog.verifyintegrity(state)