# HG changeset patch # User Thomas Arendsen Hein # Date 1125037581 -7200 # Node ID a0538ea1ac50d8f97054f9c4dcfd4c09c20214d2 # Parent 772507daaa17aa11b7891ff02a1bdd1a19408f47 Moved special handling of --version and no hg command from parse to dispatch. This allows e.g. 'hg status --version' to work. diff -r 772507daaa17 -r a0538ea1ac50 mercurial/commands.py --- 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)