Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 1518:ac4ca6bf2383
Improved error message for ambiguous command shortcuts.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Mon, 07 Nov 2005 19:00:51 +0100 |
parents | b582dbc16165 |
children | 5b19dea9d4fd |
comparison
equal
deleted
inserted
replaced
1517:b582dbc16165 | 1518:ac4ca6bf2383 |
---|---|
13 demandload(globals(), "fnmatch hgweb mdiff random signal time traceback") | 13 demandload(globals(), "fnmatch hgweb mdiff random signal time traceback") |
14 demandload(globals(), "errno socket version struct atexit sets bz2") | 14 demandload(globals(), "errno socket version struct atexit sets bz2") |
15 | 15 |
16 class UnknownCommand(Exception): | 16 class UnknownCommand(Exception): |
17 """Exception raised if command is not in the command table.""" | 17 """Exception raised if command is not in the command table.""" |
18 class AmbiguousCommand(Exception): | |
19 """Exception raised if command shortcut matches more than one command.""" | |
18 | 20 |
19 def filterfiles(filters, files): | 21 def filterfiles(filters, files): |
20 l = [x for x in files if x in filters] | 22 l = [x for x in files if x in filters] |
21 | 23 |
22 for t in filters: | 24 for t in filters: |
2380 if cmd in aliases: | 2382 if cmd in aliases: |
2381 return aliases, table[e] | 2383 return aliases, table[e] |
2382 for a in aliases: | 2384 for a in aliases: |
2383 if a.startswith(cmd): | 2385 if a.startswith(cmd): |
2384 if choice: | 2386 if choice: |
2385 raise UnknownCommand(cmd) | 2387 raise AmbiguousCommand(cmd) |
2386 else: | 2388 else: |
2387 choice = aliases, table[e] | 2389 choice = aliases, table[e] |
2388 if choice: | 2390 if choice: |
2389 return choice | 2391 return choice |
2390 | 2392 |
2503 help_(u, inst.args[0]) | 2505 help_(u, inst.args[0]) |
2504 else: | 2506 else: |
2505 u.warn(_("hg: %s\n") % inst.args[1]) | 2507 u.warn(_("hg: %s\n") % inst.args[1]) |
2506 help_(u, 'shortlist') | 2508 help_(u, 'shortlist') |
2507 sys.exit(-1) | 2509 sys.exit(-1) |
2510 except AmbiguousCommand, inst: | |
2511 u.warn(_("hg: command '%s' is ambiguous.\n") % inst.args[0]) | |
2512 sys.exit(1) | |
2508 except UnknownCommand, inst: | 2513 except UnknownCommand, inst: |
2509 u.warn(_("hg: unknown command '%s'\n") % inst.args[0]) | 2514 u.warn(_("hg: unknown command '%s'\n") % inst.args[0]) |
2510 help_(u, 'shortlist') | 2515 help_(u, 'shortlist') |
2511 sys.exit(1) | 2516 sys.exit(1) |
2512 | 2517 |