Mercurial > hg-stable
view hg @ 38013:0db7fe7c34d3
shortest: make pure code also disambigute against revnums at end
This makes the pure code more similar to the native code in that it
first finds a prefix that's unambiguous among nodeids and then adds
hex digits until it no longer looks like a revnum. It will allow us to
even better separate the disambiguation with revnums in a later patch.
With this patch `hg log -r 0::50 -T '{shortest(node,1)}'` with no
native code goes from 25s to 43s. It wasn't exactly usable to begin
with, so I don't feel too bad about it.
Differential Revision: https://phab.mercurial-scm.org/D3500
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 03 May 2018 15:01:33 -0700 |
parents | 163fa0aea71e |
children | 5e78c100a215 |
line wrap: on
line source
#!/usr/bin/env python # # mercurial - scalable distributed SCM # # Copyright 2005-2007 Matt Mackall <mpm@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. from __future__ import absolute_import import os import sys if os.environ.get('HGUNICODEPEDANTRY', False): try: reload(sys) sys.setdefaultencoding("undefined") except NameError: pass 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) # enable importing on demand to reduce startup time try: if sys.version_info[0] < 3 or sys.version_info >= (3, 6): 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()