Show More
@@ -3371,12 +3371,12 b' external = {}' | |||||
3371 | def findext(name): |
|
3371 | def findext(name): | |
3372 | '''return module with given extension name''' |
|
3372 | '''return module with given extension name''' | |
3373 | try: |
|
3373 | try: | |
3374 | return external[name] |
|
3374 | return sys.modules[external[name]] | |
3375 | except KeyError: |
|
3375 | except KeyError: | |
3376 | dotname = '.' + name |
|
3376 | dotname = '.' + name | |
3377 | for k, v in external.iteritems(): |
|
3377 | for k, v in external.iteritems(): | |
3378 |
if k.endswith('.' + name) or v |
|
3378 | if k.endswith('.' + name) or v == name: | |
3379 | return v |
|
3379 | return sys.modules[v] | |
3380 | raise KeyError(name) |
|
3380 | raise KeyError(name) | |
3381 |
|
3381 | |||
3382 | def dispatch(args): |
|
3382 | def dispatch(args): | |
@@ -3390,14 +3390,14 b' def dispatch(args):' | |||||
3390 | sys.stderr.write(_("abort: %s\n") % inst) |
|
3390 | sys.stderr.write(_("abort: %s\n") % inst) | |
3391 | return -1 |
|
3391 | return -1 | |
3392 |
|
3392 | |||
3393 | for x in u.extensions(): |
|
3393 | for ext_name, load_from_name in u.extensions(): | |
3394 | try: |
|
3394 | try: | |
3395 |
if |
|
3395 | if load_from_name: | |
3396 | # the module will be loaded in sys.modules |
|
3396 | # the module will be loaded in sys.modules | |
3397 | # choose an unique name so that it doesn't |
|
3397 | # choose an unique name so that it doesn't | |
3398 | # conflicts with other modules |
|
3398 | # conflicts with other modules | |
3399 |
module_name = "hgext_%s" % |
|
3399 | module_name = "hgext_%s" % ext_name.replace('.', '_') | |
3400 |
mod = imp.load_source(module_name, |
|
3400 | mod = imp.load_source(module_name, load_from_name) | |
3401 | else: |
|
3401 | else: | |
3402 | def importh(name): |
|
3402 | def importh(name): | |
3403 | mod = __import__(name) |
|
3403 | mod = __import__(name) | |
@@ -3406,12 +3406,10 b' def dispatch(args):' | |||||
3406 | mod = getattr(mod, comp) |
|
3406 | mod = getattr(mod, comp) | |
3407 | return mod |
|
3407 | return mod | |
3408 | try: |
|
3408 | try: | |
3409 |
|
|
3409 | mod = importh("hgext.%s" % ext_name) | |
3410 | mod = importh(name) |
|
|||
3411 | except ImportError: |
|
3410 | except ImportError: | |
3412 |
|
|
3411 | mod = importh(ext_name) | |
3413 | mod = importh(name) |
|
3412 | external[ext_name] = mod.__name__ | |
3414 | external[name] = mod |
|
|||
3415 | except (util.SignalInterrupt, KeyboardInterrupt): |
|
3413 | except (util.SignalInterrupt, KeyboardInterrupt): | |
3416 | raise |
|
3414 | raise | |
3417 | except Exception, inst: |
|
3415 | except Exception, inst: | |
@@ -3419,14 +3417,15 b' def dispatch(args):' | |||||
3419 | if u.print_exc(): |
|
3417 | if u.print_exc(): | |
3420 | return 1 |
|
3418 | return 1 | |
3421 |
|
3419 | |||
3422 |
for |
|
3420 | for name in external.itervalues(): | |
3423 | uisetup = getattr(x, 'uisetup', None) |
|
3421 | mod = sys.modules[name] | |
|
3422 | uisetup = getattr(mod, 'uisetup', None) | |||
3424 | if uisetup: |
|
3423 | if uisetup: | |
3425 | uisetup(u) |
|
3424 | uisetup(u) | |
3426 |
cmdtable = getattr( |
|
3425 | cmdtable = getattr(mod, 'cmdtable', {}) | |
3427 | for t in cmdtable: |
|
3426 | for t in cmdtable: | |
3428 | if t in table: |
|
3427 | if t in table: | |
3429 |
u.warn(_("module %s overrides %s\n") % ( |
|
3428 | u.warn(_("module %s overrides %s\n") % (name, t)) | |
3430 | table.update(cmdtable) |
|
3429 | table.update(cmdtable) | |
3431 |
|
3430 | |||
3432 | try: |
|
3431 | try: | |
@@ -3475,9 +3474,10 b' def dispatch(args):' | |||||
3475 | if not repo: |
|
3474 | if not repo: | |
3476 | repo = hg.repository(u, path=path) |
|
3475 | repo = hg.repository(u, path=path) | |
3477 | u = repo.ui |
|
3476 | u = repo.ui | |
3478 |
for |
|
3477 | for name in external.itervalues(): | |
3479 | if hasattr(x, 'reposetup'): |
|
3478 | mod = sys.modules[name] | |
3480 |
|
|
3479 | if hasattr(mod, 'reposetup'): | |
|
3480 | mod.reposetup(u, repo) | |||
3481 | except hg.RepoError: |
|
3481 | except hg.RepoError: | |
3482 | if cmd not in optionalrepo.split(): |
|
3482 | if cmd not in optionalrepo.split(): | |
3483 | raise |
|
3483 | raise |
General Comments 0
You need to be logged in to leave comments.
Login now