diff --git a/mercurial/packagescan.py b/mercurial/packagescan.py --- a/mercurial/packagescan.py +++ b/mercurial/packagescan.py @@ -16,8 +16,14 @@ def demandload(scope, modules): """ fake demandload function that collects the required modules """ for m in modules.split(): mod = None - mod = __import__(m,scope,scope) - scope[m] = mod + try: + module, submodules = m.split(':') + submodules = submodules.split(',') + except: + module = m + submodules = [] + mod = __import__(module, scope, scope, submodules) + scope[module] = mod requiredmodules[mod.__name__] = 1 def getmodules(libpath,packagename):