diff -r 527cf881d000 -r 38dc3f28f478 mercurial/dispatch.py --- a/mercurial/dispatch.py Mon Mar 14 00:14:43 2016 +0900 +++ b/mercurial/dispatch.py Sat Jan 09 22:46:26 2016 +0900 @@ -747,7 +747,12 @@ [], {}) def _cmdattr(ui, cmd, func, attr): - return getattr(func, attr) + try: + return getattr(func, attr) + except AttributeError: + ui.deprecwarn("missing attribute '%s', use @command decorator " + "to register '%s'" % (attr, cmd), '3.8') + return False _loaded = set()