[PATCH 2 of 2 V2] revset: skip old style lookup if external whitespace are detected
Yuya Nishihara
yuya at tcha.org
Tue Feb 13 06:47:21 EST 2018
On Mon, 12 Feb 2018 18:00:52 +0100, Boris Feld wrote:
> # HG changeset patch
> # User Boris Feld <boris.feld at octobus.net>
> # Date 1518448909 -3600
> # Mon Feb 12 16:21:49 2018 +0100
> # Node ID b0f45e1376e2d0f32023e197c51802bc21c60490
> # Parent f02fd7ca256d044c4a51c3f3fc0ecaf95d23e03d
> # EXP-Topic noname
> # Available At https://bitbucket.org/octobus/mercurial-devel/
> # hg pull https://bitbucket.org/octobus/mercurial-devel/ -r b0f45e1376e2
> revset: skip old style lookup if external whitespace are detected
>
> Since label cannot contains leading or trailing whitespace we can skip looking
> for them. This is useful in repository with slow labels (eg: special type of
> tags). Short command running on a specific revision can benefit from such
> shortcut.
>
> eg on a repository where loading tags take 0.4s:
>
> 1: hg log --template '{node}\n' --rev 'rev(0)'
> 0.560 seconds
>
> 2: hg log --template '{node}\n' --rev ' rev(0)'
> 0.109 seconds
Seems okay, but isn't it too obscure that prefixing with ' ' is the fast
way of querying?
Instead, maybe we can make lookup() to not search slow labels assuming these
labeling schemes didn't exist in pre-revset era. Alternatively, we could add
a config knob to switch off the old-style range support.
More information about the Mercurial-devel
mailing list