changeset 819:e30ff6d5feff

Fix import based feature detection With demandimport, the following: from mercurial.util import canonpath creates an 'unloaded module' if canonpath is not a mercurial.util attribute, instead of raising AttributeError or ImportError, which defeats tests like: try: from mercurial.util import canonpath except (AttributeError, ImportError): from mercurial.scmutil import canonpath Instead, we reference the attribute explicitely, making either the modules to load or to fail loading.
author Patrick Mezard <pmezard@gmail.com>
date Fri, 08 Jul 2011 13:57:30 +0200
parents 9aed3bfc92d6
children 09f7c1c09207
files hgsubversion/svnexternals.py hgsubversion/wrappers.py
diffstat 2 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/hgsubversion/svnexternals.py
+++ b/hgsubversion/svnexternals.py
@@ -14,9 +14,10 @@ except (ImportError, AttributeError), e:
 
 passpegrev = True # see svnsubrepo below
 try:
-    from mercurial.util import canonpath
+    canonpath = hgutil.canonpath
 except (ImportError, AttributeError):
-    from mercurial.scmutil import canonpath
+    from mercurial import scmutil
+    canonpath = scmutil.canonpath    
     passpegrev = False
 
 import util
--- a/hgsubversion/wrappers.py
+++ b/hgsubversion/wrappers.py
@@ -16,9 +16,10 @@ import svnrepo
 import util
 
 try:
-    from mercurial.scmutil import revpair
+    from mercurial import scmutil
+    revpair = scmutil.revpair
 except ImportError:
-    from mercurial.cmdutil import revpair
+    revpair = cmdutil.revpair
 
 pullfuns = {
     True: replay.convert_rev,