mercurial/revlog.py
changeset 39768 7b2b42fc377a
parent 39767 db088e133e91
child 39769 ba0e0c6b7b61
--- a/mercurial/revlog.py	Wed Sep 05 13:29:22 2018 -0700
+++ b/mercurial/revlog.py	Thu Sep 13 15:48:53 2018 -0700
@@ -415,6 +415,10 @@
         self._srdensitythreshold = 0.50
         self._srmingapsize = 262144
 
+        # Make copy of flag processors so each revlog instance can support
+        # custom flags.
+        self._flagprocessors = dict(_flagprocessors)
+
         mmapindexthreshold = None
         v = REVLOG_DEFAULT_VERSION
         opts = getattr(opener, 'options', None)
@@ -1707,11 +1711,11 @@
             if flag & flags:
                 vhash = True
 
-                if flag not in _flagprocessors:
+                if flag not in self._flagprocessors:
                     message = _("missing processor for flag '%#x'") % (flag)
                     raise RevlogError(message)
 
-                processor = _flagprocessors[flag]
+                processor = self._flagprocessors[flag]
                 if processor is not None:
                     readtransform, writetransform, rawtransform = processor