Comments
Patch
@@ -2277,6 +2277,10 @@ def _temprevlog(ui, orig, truncaterev):
if orig._inline:
raise error.Abort('not supporting inline revlog (yet)')
+ revlogkwargs = {}
+ k = 'upperboundcomp'
+ if util.safehasattr(orig, k):
+ revlogkwargs[k] = getattr(orig, k)
origindexpath = orig.opener.join(orig.indexfile)
origdatapath = orig.opener.join(orig.datafile)
@@ -2308,7 +2312,7 @@ def _temprevlog(ui, orig, truncaterev):
dest = revlog.revlog(vfs,
indexfile=indexname,
- datafile=dataname)
+ datafile=dataname, **revlogkwargs)
if dest._inline:
raise error.Abort('not supporting inline revlog (yet)')
# make sure internals are initialized
@@ -1417,6 +1417,10 @@ class manifestfulltextcache(util.lrucach
self.write()
self._read = False
+# and upper bound of what we expect from compression
+# (real live value seems to be "3")
+MAXCOMPRESSION = 10
+
@interfaceutil.implementer(repository.imanifeststorage)
class manifestrevlog(object):
'''A revlog that stores manifest texts. This is responsible for caching the
@@ -1467,7 +1471,8 @@ class manifestrevlog(object):
self._revlog = revlog.revlog(opener, indexfile,
# only root indexfile is cached
checkambig=not bool(tree),
- mmaplargeindex=True)
+ mmaplargeindex=True,
+ upperboundcomp=MAXCOMPRESSION)
self.index = self._revlog.index
self.version = self._revlog.version
@@ -337,15 +337,21 @@ class revlog(object):
configured threshold.
If censorable is True, the revlog can have censored revisions.
+
+ If `upperboundcomp` is not None, this is the expected maximal gain from
+ compression for the data content.
"""
def __init__(self, opener, indexfile, datafile=None, checkambig=False,
- mmaplargeindex=False, censorable=False):
+ mmaplargeindex=False, censorable=False,
+ upperboundcomp=None):
"""
create a revlog object
opener is a function that abstracts the file opening operation
and can be used to implement COW semantics or the like.
+
"""
+ self.upperboundcomp = upperboundcomp
self.indexfile = indexfile
self.datafile = datafile or (indexfile[:-2] + ".d")
self.opener = opener