Mercurial > hg-stable
view hg @ 49601:9d8757ddd0ab stable
extensions: process disabled external paths when `hgext` package is in-memory
This fixes `hg help -e ambiguous` in test-helpt.t:2055 with the
`ambiguous = !./ambiguous.py` configuration, when `hgext` is not in the
filesystem (e.g. pyoxidizer builds with in-memory resources, or TortoiseHg with
py2exe), but the disabled external extension is. Now instead of aborting with a
suggestion to try `--keyword`, the help command prints text for the extension.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 07 Dec 2022 11:26:07 -0500 |
parents | edab75a4c1da |
children | 057639af827c |
line wrap: on
line source
#!/usr/bin/env python3 # # mercurial - scalable distributed SCM # # Copyright 2005-2007 Olivia Mackall <olivia@selenic.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. import os import sys libdir = '@LIBDIR@' if libdir != '@' 'LIBDIR' '@': if not os.path.isabs(libdir): libdir = os.path.join( os.path.dirname(os.path.realpath(__file__)), libdir ) libdir = os.path.abspath(libdir) sys.path.insert(0, libdir) # Make `pip install --user ...` packages available to the official Windows # build. Most py2 packaging installs directly into the system python # environment, so no changes are necessary for other platforms. The Windows # py2 package uses py2exe, which lacks a `site` module. Hardcode it according # to the documentation. if getattr(sys, 'frozen', None) == 'console_exe': vi = sys.version_info appdata = os.environ.get('APPDATA') if appdata: sys.path.append( os.path.join( appdata, 'Python', 'Python%d%d' % (vi[0], vi[1]), 'site-packages', ) ) from hgdemandimport import tracing with tracing.log('hg script'): # enable importing on demand to reduce startup time try: import hgdemandimport hgdemandimport.enable() except ImportError: sys.stderr.write( "abort: couldn't find mercurial libraries in [%s]\n" % ' '.join(sys.path) ) sys.stderr.write("(check your install and PYTHONPATH)\n") sys.exit(-1) from mercurial import dispatch dispatch.run()