# HG changeset patch # User Pierre-Yves David # Date 2019-09-07 16:56:45 # Node ID a5c088966d6c64223b988838f213e0df5ccdc4ef # Parent 5bb68fb72df26c01ce94eab5b110651bebd47a70 flagutil: use the new mixin use in remotefilelog This remove one of the code duplication. Hooray \o/. Differential Revision: https://phab.mercurial-scm.org/D6797 diff --git a/hgext/remotefilelog/remotefilelog.py b/hgext/remotefilelog/remotefilelog.py --- a/hgext/remotefilelog/remotefilelog.py +++ b/hgext/remotefilelog/remotefilelog.py @@ -24,6 +24,7 @@ from mercurial import ( revlog, ) from mercurial.utils import storageutil +from mercurial.revlogutils import flagutil from . import ( constants, @@ -45,7 +46,7 @@ class remotefilelognodemap(object): raise KeyError(node) return node -class remotefilelog(object): +class remotefilelog(flagutil.flagprocessorsmixin): _generaldelta = True @@ -57,6 +58,8 @@ class remotefilelog(object): self.version = 1 + self._flagprocessors = dict(flagutil.flagprocessors) + def read(self, node): """returns the file contents at this node""" t = self.revision(node) @@ -327,28 +330,6 @@ class remotefilelog(object): def rawdata(self, node): return self.revision(node, raw=False) - def _processflags(self, text, flags, operation, raw=False): - # mostly copied from hg/mercurial/revlog.py - validatehash = True - orderedflags = revlog.REVIDX_FLAGS_ORDER - if operation == 'write': - orderedflags = reversed(orderedflags) - for flag in orderedflags: - if flag & flags: - vhash = True - if flag not in revlog._flagprocessors: - message = _("missing processor for flag '%#x'") % (flag) - raise revlog.RevlogError(message) - readfunc, writefunc, rawfunc = revlog._flagprocessors[flag] - if raw: - vhash = rawfunc(self, text) - elif operation == 'read': - text, vhash = readfunc(self, text) - elif operation == 'write': - text, vhash = writefunc(self, text) - validatehash = validatehash and vhash - return text, validatehash - def _read(self, id): """reads the raw file blob from disk, cache, or server""" fileservice = self.repo.fileservice