mercurial/revlog.py
changeset 40325 b0fbd1792e2d
parent 40298 9cadb0f5f227
child 40418 256b1f0c24e8
child 40495 59a870a4ad6e
--- a/mercurial/revlog.py	Thu Sep 20 17:27:01 2018 -0700
+++ b/mercurial/revlog.py	Tue Oct 16 15:36:19 2018 +0200
@@ -2109,23 +2109,7 @@
         if not self._censorable:
             return False
 
-        # Fragile heuristic: unless new file meta keys are added alphabetically
-        # preceding "censored", all censored revisions are prefixed by
-        # "\1\ncensored:". A delta producing such a censored revision must be a
-        # full-replacement delta, so we inspect the first and only patch in the
-        # delta for this prefix.
-        hlen = struct.calcsize(">lll")
-        if len(delta) <= hlen:
-            return False
-
-        oldlen = self.rawsize(baserev)
-        newlen = len(delta) - hlen
-        if delta[:hlen] != mdiff.replacediffheader(oldlen, newlen):
-            return False
-
-        add = "\1\ncensored:"
-        addlen = len(add)
-        return newlen >= addlen and delta[hlen:hlen + addlen] == add
+        return storageutil.deltaiscensored(delta, baserev, self.rawsize)
 
     def getstrippoint(self, minlink):
         """find the minimum rev that must be stripped to strip the linkrev