# HG changeset patch # User Pierre-Yves David # Date 1434737831 25200 # Node ID c88082baf6933dbde3f6bdde6fff788defa06ec6 # Parent 52e5f68d8363d634e89325cf5c21506c0b031159 devel-warn: issue a warning for old style revsets We have move to smartset class more than a year ago, we now have the tool to aggressively nudge developer into upgrading their extensions. diff -r 52e5f68d8363 -r c88082baf693 mercurial/revset.py --- a/mercurial/revset.py Fri Jun 19 11:19:45 2015 -0700 +++ b/mercurial/revset.py Fri Jun 19 11:17:11 2015 -0700 @@ -321,6 +321,13 @@ s = methods[x[0]](repo, subset, *x[1:]) if util.safehasattr(s, 'isascending'): return s + if (repo.ui.configbool('devel', 'all-warnings') + or repo.ui.configbool('devel', 'old-revset')): + # else case should not happen, because all non-func are internal, + # ignoring for now. + if x[0] == 'func' and x[1][0] == 'symbol' and x[1][1] in symbols: + repo.ui.develwarn('revset "%s" use list instead of smartset, ' + '(upgrade your code)' % x[1][1]) return baseset(s) def _getrevsource(repo, r): diff -r 52e5f68d8363 -r c88082baf693 tests/test-devel-warnings.t --- a/tests/test-devel-warnings.t Fri Jun 19 11:19:45 2015 -0700 +++ b/tests/test-devel-warnings.t Fri Jun 19 11:17:11 2015 -0700 @@ -3,7 +3,7 @@ > """A small extension that acquire locks in the wrong order > """ > - > from mercurial import cmdutil, repair + > from mercurial import cmdutil, repair, revset > > cmdtable = {} > command = cmdutil.command(cmdtable) @@ -47,6 +47,11 @@ > repair.strip(repo.ui, repo, [repo['.'].node()]) > finally: > lo.release() + > + > def oldstylerevset(repo, subset, x): + > return list(subset) + > + > revset.symbols['oldstyle'] = oldstylerevset > EOF $ cat << EOF >> $HGRCPATH @@ -106,4 +111,8 @@ (contact your extension maintainer) [255] + $ hg log -r "oldstyle()" -T '{rev}\n' + devel-warn: revset "oldstyle" use list instead of smartset, (upgrade your code) at: */mercurial/revset.py:* (mfunc) (glob) + 0 + $ cd ..