# HG changeset patch # User Patrick Mezard # Date 1310126250 -7200 # Node ID e30ff6d5feff1867ef9928930f6697c799c6aacd # Parent 9aed3bfc92d6f98379f58704de910e590a4ab4f1 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. diff --git a/hgsubversion/svnexternals.py b/hgsubversion/svnexternals.py --- 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 diff --git a/hgsubversion/wrappers.py b/hgsubversion/wrappers.py --- 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,