inhibit: improve performance of transaction wrapping
Before this patch, transaction wrapping was the most expensive part of inhibit
computation wise. This patch changes the revset that we use in the transaction
wrapping to make it ~50x faster to compute:
revset #0: obsolete() - hidden()
0) wall 0.000214 comb 0.000000 user 0.000000 sys 0.000000 (best of 11209)
vs
revset #0: (not hidden()) and obsolete()
0) wall 0.010965 comb 0.010000 user 0.010000 sys 0.000000 (best of 237)
# Copied from histedit setup.py
# Credit to Augie Fackler <durin42@gmail.com>
import os
from distutils.core import setup
from os.path import dirname, join
def get_version(relpath):
'''Read version info from a file without importing it'''
for line in open(join(dirname(__file__), relpath), 'rb'):
# Decode to a fail-safe string for PY3
# (gives unicode object in PY2)
line = line.decode('utf8')
if '__version__' in line:
if "'" in line:
return line.split("'")[1]
py_modules = [
'hgext.evolve',
]
if os.environ.get('INCLUDE_INHIBIT'):
py_modules.append('hgext.inhibit')
py_modules.append('hgext.directaccess')
setup(
name='hg-evolve',
version=get_version('hgext/evolve.py'),
author='Pierre-Yves David',
maintainer='Pierre-Yves David',
maintainer_email='pierre-yves.david@ens-lyon.org',
url='https://bitbucket.org/marmoute/mutable-history',
description='Flexible evolution of Mercurial history.',
long_description=open('README').read(),
keywords='hg mercurial',
license='GPLv2+',
py_modules=py_modules
)