Comments
Patch
@@ -856,7 +856,7 @@
return decompress(self._chunkraw(rev, rev))
def _keyframechunk(self, rev):
- return decompress(self._chunkraw(rev, rev))
+ return self.decompresskeyframe(self._chunkraw(rev, rev))
def _deltachunks(self, revs):
'''faster version of [self._deltachunk(rev) for rev in revs]
@@ -1082,6 +1082,16 @@
return ('u', text)
return ("", bin)
+ def compresskeyframe(self, text):
+ """wrapper for key frames compression
+
+ revision format aware subclasses may override this method to perform
+ transformations of key frames to achieve better compression ratio """
+ return self.compress(text)
+
+ def decompresskeyframe(self, bin):
+ return decompress(bin)
+
def _addrevision(self, node, text, transaction, link, p1, p2,
cachedelta, ifh, dfh):
"""internal function to add revisions to the log
@@ -1158,7 +1168,7 @@
textlen = len(text)
if d is None or dist > textlen * 2:
text = buildtext()
- data = self.compress(text)
+ data = self.compresskeyframe(text)
l = len(data[1]) + len(data[0])
base = chainbase = curr