Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/dispatch.py @ 30494:acd30a959980
dispatch: stop supporting non-use of @command
We said we'd delete this after 3.8. It's time.
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 21 Nov 2016 21:51:23 -0500 |
parents | 39d13b8c101d |
children | fc0cfe6c87d7 |
comparison
equal
deleted
inserted
replaced
30493:d1b97fc87f55 | 30494:acd30a959980 |
---|---|
712 if cmd and util.safehasattr(fn, 'shell'): | 712 if cmd and util.safehasattr(fn, 'shell'): |
713 d = lambda: fn(ui, *args[1:]) | 713 d = lambda: fn(ui, *args[1:]) |
714 return lambda: runcommand(lui, None, cmd, args[:1], ui, options, d, | 714 return lambda: runcommand(lui, None, cmd, args[:1], ui, options, d, |
715 [], {}) | 715 [], {}) |
716 | 716 |
717 def _cmdattr(ui, cmd, func, attr): | |
718 try: | |
719 return getattr(func, attr) | |
720 except AttributeError: | |
721 ui.deprecwarn("missing attribute '%s', use @command decorator " | |
722 "to register '%s'" % (attr, cmd), '3.8') | |
723 return False | |
724 | |
725 _loaded = set() | 717 _loaded = set() |
726 | 718 |
727 # list of (objname, loadermod, loadername) tuple: | 719 # list of (objname, loadermod, loadername) tuple: |
728 # - objname is the name of an object in extension module, from which | 720 # - objname is the name of an object in extension module, from which |
729 # extra information is loaded | 721 # extra information is loaded |
852 return commands.help_(ui, 'shortlist') | 844 return commands.help_(ui, 'shortlist') |
853 | 845 |
854 with profiling.maybeprofile(lui): | 846 with profiling.maybeprofile(lui): |
855 repo = None | 847 repo = None |
856 cmdpats = args[:] | 848 cmdpats = args[:] |
857 if not _cmdattr(ui, cmd, func, 'norepo'): | 849 if not func.norepo: |
858 # use the repo from the request only if we don't have -R | 850 # use the repo from the request only if we don't have -R |
859 if not rpath and not cwd: | 851 if not rpath and not cwd: |
860 repo = req.repo | 852 repo = req.repo |
861 | 853 |
862 if repo: | 854 if repo: |
875 except error.RequirementError: | 867 except error.RequirementError: |
876 raise | 868 raise |
877 except error.RepoError: | 869 except error.RepoError: |
878 if rpath and rpath[-1]: # invalid -R path | 870 if rpath and rpath[-1]: # invalid -R path |
879 raise | 871 raise |
880 if not _cmdattr(ui, cmd, func, 'optionalrepo'): | 872 if not func.optionalrepo: |
881 if (_cmdattr(ui, cmd, func, 'inferrepo') and | 873 if func.inferrepo and args and not path: |
882 args and not path): | |
883 # try to infer -R from command args | 874 # try to infer -R from command args |
884 repos = map(cmdutil.findrepo, args) | 875 repos = map(cmdutil.findrepo, args) |
885 guess = repos[0] | 876 guess = repos[0] |
886 if guess and repos.count(guess) == len(repos): | 877 if guess and repos.count(guess) == len(repos): |
887 req.args = ['--repository', guess] + fullargs | 878 req.args = ['--repository', guess] + fullargs |