mercurial/dispatch.py
changeset 6217 fe8dbbe9520d
parent 6211 f89fd07fc51d
child 6985 5cf3bf3c19ba
child 6993 b9d012ce8578
equal deleted inserted replaced
6216:a88259018f79 6217:fe8dbbe9520d
     4 #
     4 #
     5 # This software may be used and distributed according to the terms
     5 # This software may be used and distributed according to the terms
     6 # of the GNU General Public License, incorporated herein by reference.
     6 # of the GNU General Public License, incorporated herein by reference.
     7 
     7 
     8 from i18n import _
     8 from i18n import _
       
     9 from repo import RepoError
     9 import os, sys, atexit, signal, pdb, traceback, socket, errno, shlex, time
    10 import os, sys, atexit, signal, pdb, traceback, socket, errno, shlex, time
    10 import util, commands, hg, lock, fancyopts, revlog, version, extensions, hook
    11 import util, commands, hg, lock, fancyopts, revlog, version, extensions, hook
    11 import cmdutil
    12 import cmdutil
    12 import ui as _ui
    13 import ui as _ui
    13 
    14 
    62         ui.warn(_("hg: command '%s' is ambiguous:\n    %s\n") %
    63         ui.warn(_("hg: command '%s' is ambiguous:\n    %s\n") %
    63                 (inst.args[0], " ".join(inst.args[1])))
    64                 (inst.args[0], " ".join(inst.args[1])))
    64     except cmdutil.UnknownCommand, inst:
    65     except cmdutil.UnknownCommand, inst:
    65         ui.warn(_("hg: unknown command '%s'\n") % inst.args[0])
    66         ui.warn(_("hg: unknown command '%s'\n") % inst.args[0])
    66         commands.help_(ui, 'shortlist')
    67         commands.help_(ui, 'shortlist')
    67     except hg.RepoError, inst:
    68     except RepoError, inst:
    68         ui.warn(_("abort: %s!\n") % inst)
    69         ui.warn(_("abort: %s!\n") % inst)
    69     except lock.LockHeld, inst:
    70     except lock.LockHeld, inst:
    70         if inst.errno == errno.ETIMEDOUT:
    71         if inst.errno == errno.ETIMEDOUT:
    71             reason = _('timed out waiting for lock held by %s') % inst.locker
    72             reason = _('timed out waiting for lock held by %s') % inst.locker
    72         else:
    73         else:
   339             repo = hg.repository(ui, path=path)
   340             repo = hg.repository(ui, path=path)
   340             ui = repo.ui
   341             ui = repo.ui
   341             if not repo.local():
   342             if not repo.local():
   342                 raise util.Abort(_("repository '%s' is not local") % path)
   343                 raise util.Abort(_("repository '%s' is not local") % path)
   343             ui.setconfig("bundle", "mainreporoot", repo.root)
   344             ui.setconfig("bundle", "mainreporoot", repo.root)
   344         except hg.RepoError:
   345         except RepoError:
   345             if cmd not in commands.optionalrepo.split():
   346             if cmd not in commands.optionalrepo.split():
   346                 if args and not path: # try to infer -R from command args
   347                 if args and not path: # try to infer -R from command args
   347                     repos = map(_findrepo, args)
   348                     repos = map(_findrepo, args)
   348                     guess = repos[0]
   349                     guess = repos[0]
   349                     if guess and repos.count(guess) == len(repos):
   350                     if guess and repos.count(guess) == len(repos):
   350                         return _dispatch(ui, ['--repository', guess] + fullargs)
   351                         return _dispatch(ui, ['--repository', guess] + fullargs)
   351                 if not path:
   352                 if not path:
   352                     raise hg.RepoError(_("There is no Mercurial repository here"
   353                     raise RepoError(_("There is no Mercurial repository here"
   353                                          " (.hg not found)"))
   354                                       " (.hg not found)"))
   354                 raise
   355                 raise
   355         d = lambda: func(ui, repo, *args, **cmdoptions)
   356         d = lambda: func(ui, repo, *args, **cmdoptions)
   356     else:
   357     else:
   357         d = lambda: func(ui, *args, **cmdoptions)
   358         d = lambda: func(ui, *args, **cmdoptions)
   358 
   359