Mercurial > hg
comparison mercurial/dispatch.py @ 12633:301d7626e0ff
alias: back up and restore commands.norepo before checking for shell aliases
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Fri, 08 Oct 2010 16:10:00 -0400 |
parents | 208fc9ad6a48 |
children | c24215aa7e69 |
comparison
equal
deleted
inserted
replaced
12632:6c98107f787e | 12633:301d7626e0ff |
---|---|
432 | 432 |
433 return path, lui | 433 return path, lui |
434 | 434 |
435 def _checkshellalias(ui, args): | 435 def _checkshellalias(ui, args): |
436 cwd = os.getcwd() | 436 cwd = os.getcwd() |
437 norepo = commands.norepo | |
437 options = {} | 438 options = {} |
438 args = fancyopts.fancyopts(args, commands.globalopts, options) | 439 args = fancyopts.fancyopts(args, commands.globalopts, options) |
439 | 440 |
440 if not args: | 441 if not args: |
441 return | 442 return |
451 | 452 |
452 cmd = args[0] | 453 cmd = args[0] |
453 try: | 454 try: |
454 aliases, entry = cmdutil.findcmd(cmd, cmdtable, lui.config("ui", "strict")) | 455 aliases, entry = cmdutil.findcmd(cmd, cmdtable, lui.config("ui", "strict")) |
455 except error.UnknownCommand: | 456 except error.UnknownCommand: |
457 commands.norepo = norepo | |
456 os.chdir(cwd) | 458 os.chdir(cwd) |
457 return | 459 return |
458 | 460 |
459 cmd = aliases[0] | 461 cmd = aliases[0] |
460 fn = entry[0] | 462 fn = entry[0] |
461 | 463 |
462 if cmd and hasattr(fn, 'shell'): | 464 if cmd and hasattr(fn, 'shell'): |
463 d = lambda: fn(ui, *args[1:]) | 465 d = lambda: fn(ui, *args[1:]) |
464 return lambda: runcommand(lui, None, cmd, args[:1], ui, options, d, [], {}) | 466 return lambda: runcommand(lui, None, cmd, args[:1], ui, options, d, [], {}) |
465 | 467 |
468 commands.norepo = norepo | |
466 os.chdir(cwd) | 469 os.chdir(cwd) |
467 | 470 |
468 _loaded = set() | 471 _loaded = set() |
469 def _dispatch(ui, args): | 472 def _dispatch(ui, args): |
470 shellaliasfn = _checkshellalias(ui, args) | 473 shellaliasfn = _checkshellalias(ui, args) |