diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -169,6 +169,9 @@ class ui(object): if self.plain('alias'): for k, v in cfg.items('alias'): del cfg['alias'][k] + if self.plain('revsetalias'): + for k, v in cfg.items('revsetalias'): + del cfg['revsetalias'][k] if trusted: self._tcfg.update(cfg) diff --git a/tests/test-revset.t b/tests/test-revset.t --- a/tests/test-revset.t +++ b/tests/test-revset.t @@ -1049,6 +1049,8 @@ aliases: $ echo '[revsetalias]' >> .hg/hgrc $ echo 'm = merge()' >> .hg/hgrc +(revset aliases can override builtin revsets) + $ echo 'p2($1) = p1($1)' >> .hg/hgrc $ echo 'sincem = descendants(m)' >> .hg/hgrc $ echo 'd($1) = reverse(sort($1, date))' >> .hg/hgrc $ echo 'rs(ARG1, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc @@ -1064,6 +1066,58 @@ aliases: > 6 + $ HGPLAIN=1 try m + ('symbol', 'm') + abort: unknown revision 'm'! + [255] + + $ HGPLAIN=1 HGPLAINEXCEPT=revsetalias try m + ('symbol', 'm') + (func + ('symbol', 'merge') + None) + * set: + > + 6 + +(for some reason HGPLAIN and HGPLAINEXCEPT can carry forward) + + $ unset HGPLAIN + $ unset HGPLAINEXCEPT + + $ try 'p2(.)' + (func + ('symbol', 'p2') + ('symbol', '.')) + (func + ('symbol', 'p1') + ('symbol', '.')) + * set: + + 8 + + $ HGPLAIN=1 try 'p2(.)' + (func + ('symbol', 'p2') + ('symbol', '.')) + * set: + + + $ HGPLAIN=1 HGPLAINEXCEPT=revsetalias try 'p2(.)' + (func + ('symbol', 'p2') + ('symbol', '.')) + (func + ('symbol', 'p1') + ('symbol', '.')) + * set: + + 8 + + $ unset HGPLAIN + $ unset HGPLAINEXCEPT + test alias recursion $ try sincem