diff -r 6637b079ae45 -r b0fbd1792e2d mercurial/revlog.py --- 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