diff -r 10c10da14c5d -r e2a1584e9e3f hgext/remotefilelog/datapack.py --- a/hgext/remotefilelog/datapack.py Wed Oct 03 23:25:31 2018 -0400 +++ b/hgext/remotefilelog/datapack.py Thu Oct 04 00:11:37 2018 -0400 @@ -1,6 +1,7 @@ from __future__ import absolute_import import struct +import zlib from mercurial.node import hex, nullid from mercurial.i18n import _ @@ -11,7 +12,6 @@ from . import ( basepack, constants, - lz4wrapper, shallowutil, ) @@ -195,7 +195,7 @@ deltalen = struct.unpack('!Q', rawdeltalen)[0] delta = rawentry[deltastart + 8:deltastart + 8 + deltalen] - delta = lz4wrapper.lz4decompress(delta) + delta = self._decompress(delta) if getmeta: metastart = deltastart + 8 + deltalen @@ -207,6 +207,9 @@ else: return filename, node, deltabasenode, delta + def _decompress(self, data): + return zlib.decompress(data) + def add(self, name, node, data): raise RuntimeError("cannot add to datapack (%s:%s)" % (name, node)) @@ -300,12 +303,10 @@ deltalen = struct.unpack('!Q', rawdeltalen)[0] offset += 8 - # it has to be at least long enough for the lz4 header. - assert deltalen >= 4 - - # python-lz4 stores the length of the uncompressed field as a - # little-endian 32-bit integer at the start of the data. - uncompressedlen = struct.unpack(' + @@ -399,6 +400,9 @@ # v1 has metadata support SUPPORTED_VERSIONS = [2] + def _compress(self, data): + return zlib.compress(data) + def add(self, name, node, deltabasenode, delta, metadata=None): # metadata is a dict, ex. {METAKEYFLAG: flag} if len(name) > 2**16: @@ -411,7 +415,7 @@ return # TODO: allow configurable compression - delta = lz4wrapper.lz4compress(delta) + delta = self._compress(delta) rawdata = ''.join(( struct.pack('!H', len(name)), # unsigned 2 byte int