pick a non-conflicting module name when loading an extension
authorBenoit Boissinot <benoit.boissinot@ens-lyon.org>
Wed, 07 Jun 2006 18:33:15 +0200
changeset 2405 4593d09e534d
parent 2404 ffc3b2f1ab6a
child 2406 4a678e408ce5
pick a non-conflicting module name when loading an extension prefix the module name by 'hgext_' so that it doesn't conflict with any core python module (for example bisect -> hgext_bisect) fix issue271
mercurial/commands.py
--- a/mercurial/commands.py	Mon Jun 05 16:48:24 2006 +0200
+++ b/mercurial/commands.py	Wed Jun 07 18:33:15 2006 +0200
@@ -3238,7 +3238,11 @@
     for x in u.extensions():
         try:
             if x[1]:
-                mod = imp.load_source(x[0], x[1])
+                # the module will be loaded in sys.modules
+                # choose an unique name so that it doesn't
+                # conflicts with other modules
+                module_name = "hgext_%s" % x[0].replace('.', '_')
+                mod = imp.load_source(module_name, x[1])
             else:
                 def importh(name):
                     mod = __import__(name)