##// END OF EJS Templates
revlog: factor the logic to determine the delta compression out...
marmoute -
r48245:c6844912 default
parent child Browse files
Show More
@@ -2437,21 +2437,9 b' class revlog(object):'
2437 2437
2438 2438 compression_mode = COMP_MODE_INLINE
2439 2439 if self._docket is not None:
2440 h, d = deltainfo.data
2441 if not h and not d:
2442 # not data to store at all... declare them uncompressed
2443 compression_mode = COMP_MODE_PLAIN
2444 elif not h:
2445 t = d[0:1]
2446 if t == b'\0':
2447 compression_mode = COMP_MODE_PLAIN
2448 elif t == self._docket.default_compression_header:
2449 compression_mode = COMP_MODE_DEFAULT
2450 elif h == b'u':
2451 # we have a more efficient way to declare uncompressed
2452 h = b''
2453 compression_mode = COMP_MODE_PLAIN
2454 deltainfo = deltautil.drop_u_compression(deltainfo)
2440 default_comp = self._docket.default_compression_header
2441 r = deltautil.delta_compression(default_comp, deltainfo)
2442 compression_mode, deltainfo = r
2455 2443
2456 2444 sidedata_compression_mode = COMP_MODE_INLINE
2457 2445 if sidedata and self.hassidedata:
@@ -18,6 +18,9 b' from ..i18n import _'
18 18 from ..pycompat import getattr
19 19
20 20 from .constants import (
21 COMP_MODE_DEFAULT,
22 COMP_MODE_INLINE,
23 COMP_MODE_PLAIN,
21 24 REVIDX_ISCENSORED,
22 25 REVIDX_RAWTEXT_CHANGING_FLAGS,
23 26 )
@@ -1113,3 +1116,28 b' class deltacomputer(object):'
1113 1116 if deltainfo is None:
1114 1117 deltainfo = self._fullsnapshotinfo(fh, revinfo)
1115 1118 return deltainfo
1119
1120
1121 def delta_compression(default_compression_header, deltainfo):
1122 """return (COMPRESSION_MODE, deltainfo)
1123
1124 used by revlog v2+ format to dispatch between PLAIN and DEFAULT
1125 compression.
1126 """
1127 h, d = deltainfo.data
1128 compression_mode = COMP_MODE_INLINE
1129 if not h and not d:
1130 # not data to store at all... declare them uncompressed
1131 compression_mode = COMP_MODE_PLAIN
1132 elif not h:
1133 t = d[0:1]
1134 if t == b'\0':
1135 compression_mode = COMP_MODE_PLAIN
1136 elif t == default_compression_header:
1137 compression_mode = COMP_MODE_DEFAULT
1138 elif h == b'u':
1139 # we have a more efficient way to declare uncompressed
1140 h = b''
1141 compression_mode = COMP_MODE_PLAIN
1142 deltainfo = drop_u_compression(deltainfo)
1143 return compression_mode, deltainfo
General Comments 0
You need to be logged in to leave comments. Login now