changeset 4582:7de7a80e7422

merge with main
author Thomas Arendsen Hein <thomas@intevation.de>
date Thu, 14 Jun 2007 11:33:32 +0200
parents 4500fbe3a432 (current diff) 3daed3680554 (diff)
children 11cf78983961 0d26e3d0eeeb
files mercurial/extensions.py mercurial/localrepo.py
diffstat 2 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/extensions.py
+++ b/mercurial/extensions.py
@@ -17,8 +17,8 @@ def find(name):
         return _extensions[name]
     except KeyError:
         for k, v in _extensions.iteritems():
-            if k.endswith('.' + name) or k.endswith('/' + name) or v == name:
-                return sys.modules[v]
+            if k.endswith('.' + name) or k.endswith('/' + name):
+                return v
         raise KeyError(name)
 
 def load(ui, name, path):
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -79,10 +79,6 @@ class localrepository(repo.repository):
         except IOError:
             pass
 
-        self.changelog = changelog.changelog(self.sopener)
-        self.sopener.defversion = self.changelog.version
-        self.manifest = manifest.manifest(self.sopener)
-
         fallback = self.ui.config('ui', 'fallbackencoding')
         if fallback:
             util._fallbackencoding = fallback
@@ -93,7 +89,20 @@ class localrepository(repo.repository):
         self.filterpats = {}
         self.transhandle = None
 
-        self.dirstate = dirstate.dirstate(self.opener, self.ui, self.root)
+    def __getattr__(self, name):
+        if name == 'changelog':
+            self.changelog = changelog.changelog(self.sopener)
+            self.sopener.defversion = self.changelog.version
+            return self.changelog
+        if name == 'manifest':
+            self.changelog
+            self.manifest = manifest.manifest(self.sopener)
+            return self.manifest
+        if name == 'dirstate':
+            self.dirstate = dirstate.dirstate(self.opener, self.ui, self.root)
+            return self.dirstate
+        else:
+            raise AttributeError, name
 
     def url(self):
         return 'file:' + self.root