[PATCH 1 of 8 V2] revset: factor out linerange processing into a utility function

Yuya Nishihara yuya at tcha.org
Wed Mar 1 15:05:52 UTC 2017


On Sat, 25 Feb 2017 10:05:58 +0100, Denis Laxalde wrote:
> # HG changeset patch
> # User Denis Laxalde <denis.laxalde at logilab.fr>
> # Date 1487957948 -3600
> #      Fri Feb 24 18:39:08 2017 +0100
> # Node ID 17c6195ce42f3cbb47cee53aeb4e6a4e5074878a
> # Parent  abb92b3d370e116b29eba4d2e3154e9691c8edbb
> # Available At https://hg.logilab.org/users/dlaxalde/hg
> #              hg pull https://hg.logilab.org/users/dlaxalde/hg -r 17c6195ce42f
> # EXP-Topic linerange-log/hgweb-filelog
> revset: factor out linerange processing into a utility function

> diff --git a/mercurial/util.py b/mercurial/util.py
> --- a/mercurial/util.py
> +++ b/mercurial/util.py
> @@ -2122,6 +2122,27 @@ def unitcountfn(*unittable):
>  
>      return go
>  
> +def processlinerange(fromline, toline):
> +    """Check that linerange <fromline>:<toline> makes sense and return a
> +    0-based range.
> +
> +    >>> processlinerange(10, 20)
> +    (9, 20)
> +    >>> processlinerange(2, 1)
> +    Traceback (most recent call last):
> +        ...
> +    ValueError: line range must be positive
> +    >>> processlinerange(0, 5)
> +    Traceback (most recent call last):
> +        ...
> +    ValueError: fromline must be strictly positive
> +    """
> +    if toline - fromline < 0:
> +        raise ValueError(_("line range must be positive"))
> +    if fromline < 1:
> +        raise ValueError(_("fromline must be strictly positive"))
> +    return fromline - 1, toline

Just a nit. Can we just raise ParseError? Carrying non-ascii bytes over
Python's standard exception might get surprising in future since the
message should be unicode on Python 3.


More information about the Mercurial-devel mailing list