Mercurial > hg > mercurial-source
changeset 23856:ddf2172e901d
revset: store full detail into revsetalias.error for error source distinction
Before this patch, any errors in the declaration of revset alias
aren't detected at all, and there is no information about error source
in the error message.
As a part of preparation for parsing alias declarations and
definitions more strictly, this patch stores full detail into
"revsetalias.error" for error source distinction.
This makes raising "Abort" and warning potential errors just use
"revsetalias.error" without any message composing.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sat, 10 Jan 2015 23:18:11 +0900 |
parents | c4d0c3d05721 |
children | 0a7fd54d4e60 |
files | mercurial/revset.py tests/test-revset.t |
diffstat | 2 files changed, 7 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -2154,7 +2154,8 @@ # Check for placeholder injection _checkaliasarg(self.replacement, self.args) except error.ParseError, inst: - self.error = parseerrordetail(inst) + self.error = _('failed to parse the definition of revset alias' + ' "%s": %s') % (self.name, parseerrordetail(inst)) def _getalias(aliases, tree): """If tree looks like an unexpanded alias, return it. Return None @@ -2197,8 +2198,7 @@ alias = _getalias(aliases, tree) if alias is not None: if alias.error: - raise util.Abort(_('failed to parse revset alias "%s": %s') % - (alias.name, alias.error)) + raise util.Abort(alias.error) if alias in expanding: raise error.ParseError(_('infinite expansion of revset alias "%s" ' 'detected') % alias.name) @@ -2231,9 +2231,7 @@ # warn about problematic (but not referred) aliases for name, alias in sorted(aliases.iteritems()): if alias.error and not alias.warned: - msg = _('failed to parse revset alias "%s": %s' - ) % (name, alias.error) - showwarning(_('warning: %s\n') % (msg)) + showwarning(_('warning: %s\n') % (alias.error)) alias.warned = True return tree
--- a/tests/test-revset.t +++ b/tests/test-revset.t @@ -985,12 +985,12 @@ (range ('symbol', '2') ('symbol', '5'))) - abort: failed to parse revset alias "injectparamasstring2": not a function: _aliasarg + abort: failed to parse the definition of revset alias "injectparamasstring2": not a function: _aliasarg [255] $ hg debugrevspec --debug --config revsetalias.anotherbadone='branch(' "tip" ('symbol', 'tip') - warning: failed to parse revset alias "anotherbadone": at 7: not a prefix: end - warning: failed to parse revset alias "injectparamasstring2": not a function: _aliasarg + warning: failed to parse the definition of revset alias "anotherbadone": at 7: not a prefix: end + warning: failed to parse the definition of revset alias "injectparamasstring2": not a function: _aliasarg 9 >>> data = file('.hg/hgrc', 'rb').read() >>> file('.hg/hgrc', 'wb').write(data.replace('_aliasarg', ''))