##// END OF EJS Templates
phases: avoid N² behavior in `advanceboundary`...
phases: avoid N² behavior in `advanceboundary` We allowed duplicated entries in the deque, which each entry could potentially insert all its ancestors. So advancing boundary for the full repository would mean each revision would walk all its ancestors, resulting in O(N²) iteration. For repository of any decent size, N² is quickly insane. We introduce a simple set to avoid this and get back to reasonable performance.

File last commit:

r51427:057639af default
r52398:c9ceb4f6 6.7 stable
Show More
hg
59 lines | 1.6 KiB | text/plain | TextLexer
Gregory Szorc
global: use python3 in shebangs...
r46434 #!/usr/bin/env python3
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0 #
Matt Mackall
Update copyright notice
r1698 # mercurial - scalable distributed SCM
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0 #
Raphaël Gomès
contributor: change mentions of mpm to olivia...
r47575 # Copyright 2005-2007 Olivia Mackall <olivia@selenic.com>
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0 #
Martin Geisler
updated license to be explicit about GPL version 2
r8225 # This software may be used and distributed according to the terms of the
Matt Mackall
Update license to GPLv2+
r10263 # GNU General Public License version 2 or any later version.
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0
Dan Villiom Podlaski Christiansen
setup/hg: always load Mercurial from where it was installed....
r12661 import os
import sys
libdir = '@LIBDIR@'
if libdir != '@' 'LIBDIR' '@':
if not os.path.isabs(libdir):
Gregory Szorc
black: blacken scripts...
r44058 libdir = os.path.join(
os.path.dirname(os.path.realpath(__file__)), libdir
)
Dan Villiom Podlaski Christiansen
setup/hg: always load Mercurial from where it was installed....
r12661 libdir = os.path.abspath(libdir)
sys.path.insert(0, libdir)
Matt Harbison
hg: add user-site to `sys.path` on Windows to allow pip-installed extensions...
r46672 # 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
Matt Harbison
hg: don't attempt to extend `sys.path` with the user site without `APPDATA`...
r48694 appdata = os.environ.get('APPDATA')
if appdata:
sys.path.append(
os.path.join(
appdata,
'Python',
'Python%d%d' % (vi[0], vi[1]),
'site-packages',
)
Matt Harbison
hg: add user-site to `sys.path` on Windows to allow pip-installed extensions...
r46672 )
Jason R. Coombs
hg: move unreachable code to where it could be reached
r51427 try:
from hgdemandimport import tracing
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)
Gregory Szorc
black: blacken scripts...
r44058
Augie Fackler
hg: wrap the highest layer in the `hg` script possible in trace event...
r39628 with tracing.log('hg script'):
# enable importing on demand to reduce startup time
Jason R. Coombs
hg: move unreachable code to where it could be reached
r51427 import hgdemandimport
Gregory Szorc
black: blacken scripts...
r44058
Jason R. Coombs
hg: move unreachable code to where it could be reached
r51427 hgdemandimport.enable()
Thomas Arendsen Hein
Enable demandimport only in scripts, not in importable modules (issue605)...
r5197
Augie Fackler
hg: wrap the highest layer in the `hg` script possible in trace event...
r39628 from mercurial import dispatch
Gregory Szorc
black: blacken scripts...
r44058
Augie Fackler
hg: wrap the highest layer in the `hg` script possible in trace event...
r39628 dispatch.run()