[PATCH] hidden: extract the code generating "filtered rev" error for wrapping

Jun Wu quark at fb.com
Sat Apr 15 20:44:22 EDT 2017


This change looks good to me.

Excerpts from Pierre-Yves David's message of 2017-04-16 02:28:15 +0200:
> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
> # Date 1492272790 -7200
> #      Sat Apr 15 18:13:10 2017 +0200
> # Node ID 95ca6e6b947fcdfd7ce2daef2de3d13f73aa3f59
> # Parent  2bf73e351eb1bb086e30c9f58543817fb05e558c
> # EXP-Topic filtererror
> # Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ 
> #              hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/  -r 95ca6e6b947f
> hidden: extract the code generating "filtered rev" error for wrapping
> 
> The goal is to help experimentation in extensions (ie: evolve) around more
> advance messages.
> 
> diff --git a/mercurial/context.py b/mercurial/context.py
> --- a/mercurial/context.py
> +++ b/mercurial/context.py
> @@ -407,6 +407,19 @@ def makememctx(repo, parents, text, user
>                   date, extra, editor)
>      return ctx
>  
> +def _filterederror(repo, changeid):
> +    """build an exception to be raised about a filtered changeid
> +
> +    This is extracted in a function to help extensions (eg: evolve) to
> +    experiment with various message variants."""
> +    if repo.filtername.startswith('visible'):
> +        msg = _("hidden revision '%s'") % changeid
> +        hint = _('use --hidden to access hidden revisions')
> +        return error.FilteredRepoLookupError(msg, hint=hint)
> +    msg = _("filtered revision '%s' (not in '%s' subset)")
> +    msg %= (changeid, repo.filtername)
> +    return error.FilteredRepoLookupError(msg)
> +
>  class changectx(basectx):
>      """A changecontext object makes access to data related to a particular
>      changeset convenient. It represents a read-only context already present in
> @@ -513,13 +526,7 @@ class changectx(basectx):
>                  pass
>          except (error.FilteredIndexError, error.FilteredLookupError,
>                  error.FilteredRepoLookupError):
> -            if repo.filtername.startswith('visible'):
> -                msg = _("hidden revision '%s'") % changeid
> -                hint = _('use --hidden to access hidden revisions')
> -                raise error.FilteredRepoLookupError(msg, hint=hint)
> -            msg = _("filtered revision '%s' (not in '%s' subset)")
> -            msg %= (changeid, repo.filtername)
> -            raise error.FilteredRepoLookupError(msg)
> +            raise _filterederror(repo, changeid)
>          except IndexError:
>              pass
>          raise error.RepoLookupError(


More information about the Mercurial-devel mailing list