Mercurial > hg
changeset 42872:a5c088966d6c
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
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 07 Sep 2019 09:56:45 -0700 |
parents | 5bb68fb72df2 |
children | 7907008a0bb5 |
files | hgext/remotefilelog/remotefilelog.py |
diffstat | 1 files changed, 4 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/remotefilelog/remotefilelog.py Thu Aug 08 01:12:48 2019 +0200 +++ b/hgext/remotefilelog/remotefilelog.py Sat Sep 07 09:56:45 2019 -0700 @@ -24,6 +24,7 @@ revlog, ) from mercurial.utils import storageutil +from mercurial.revlogutils import flagutil from . import ( constants, @@ -45,7 +46,7 @@ raise KeyError(node) return node -class remotefilelog(object): +class remotefilelog(flagutil.flagprocessorsmixin): _generaldelta = True @@ -57,6 +58,8 @@ 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 @@ 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