Mercurial > hg-stable
view mercurial/policy.py @ 31804:726f24123f02
revlog: avoid applying delta chain on cache hit
Previously, revlog.revision(raw=False) may try to apply the delta chain
on _cache hit. That happens if flags are non-empty. This patch makes rawtext
reused so delta chain application is avoided.
"_cache" and "rev" are moved a bit to avoid unnecessary assignments.
author | Jun Wu <quark@fb.com> |
---|---|
date | Sun, 02 Apr 2017 18:40:13 -0700 |
parents | 8a17c541177f |
children | 56148133ef36 |
line wrap: on
line source
# policy.py - module policy logic for Mercurial. # # Copyright 2015 Gregory Szorc <gregory.szorc@gmail.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import absolute_import import os import sys # Rules for how modules can be loaded. Values are: # # c - require C extensions # allow - allow pure Python implementation when C loading fails # cffi - required cffi versions (implemented within pure module) # cffi-allow - allow pure Python implementation if cffi version is missing # py - only load pure Python modules # # By default, require the C extensions for performance reasons. policy = b'c' policynoc = (b'cffi', b'cffi-allow', b'py') policynocffi = (b'c', b'py') try: from . import __modulepolicy__ policy = __modulepolicy__.modulepolicy except ImportError: pass # PyPy doesn't load C extensions. # # The canonical way to do this is to test platform.python_implementation(). # But we don't import platform and don't bloat for it here. if '__pypy__' in sys.builtin_module_names: policy = 'cffi' # Our C extensions aren't yet compatible with Python 3. So use pure Python # on Python 3 for now. if sys.version_info[0] >= 3: policy = b'py' # Environment variable can always force settings. if sys.version_info[0] >= 3: if 'HGMODULEPOLICY' in os.environ: policy = os.environ['HGMODULEPOLICY'].encode('utf-8') else: policy = os.environ.get('HGMODULEPOLICY', policy)