Mercurial > hg
changeset 1047:a0538ea1ac50
Moved special handling of --version and no hg command from parse to dispatch.
This allows e.g. 'hg status --version' to work.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 26 Aug 2005 08:26:21 +0200 |
parents | 772507daaa17 |
children | 7fbb440b2e63 |
files | mercurial/commands.py |
diffstat | 1 files changed, 14 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Thu Aug 25 18:35:35 2005 +0200 +++ b/mercurial/commands.py Fri Aug 26 08:26:21 2005 +0200 @@ -1556,17 +1556,15 @@ except fancyopts.getopt.GetoptError, inst: raise ParseError(None, inst) - if options["version"]: - return ("version", show_version, [], options, cmdoptions) - elif not args: - return ("help", help_, ["shortlist"], options, cmdoptions) + if args: + cmd, args = args[0], args[1:] + i = find(cmd)[1] + c = list(i[1]) else: - cmd, args = args[0], args[1:] - - i = find(cmd)[1] + cmd = None + c = [] # combine global options into local - c = list(i[1]) for o in globalopts: c.append((o[0], o[1], options[o[1]], o[3])) @@ -1581,7 +1579,7 @@ options[n] = cmdoptions[n] del cmdoptions[n] - return (cmd, i[0], args, options, cmdoptions) + return (cmd, cmd and i[0] or None, args, options, cmdoptions) def dispatch(args): signal.signal(signal.SIGTERM, catchterm) @@ -1634,6 +1632,13 @@ try: try: + if options['version']: + show_version(u) + sys.exit(0) + elif not cmd: + help_(u, 'shortlist') + sys.exit(0) + if cmd not in norepo.split(): path = options["repository"] or "" repo = hg.repository(ui=u, path=path)