# HG changeset patch # User Thomas Arendsen Hein # Date 1181813612 -7200 # Node ID 7de7a80e742207204969f85188e6c4d6c6b493bd # Parent 4500fbe3a432c52276f1d7a2f8287ab26cc693bc# Parent 3daed3680554787f32bdc4cac7c034ad6129692d merge with main diff --git a/mercurial/extensions.py b/mercurial/extensions.py --- 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): diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- 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