dirstate.invalidate: avoid rebuilding _map
Since hasattr will call __getattr__, the call to hasattr(self, '_dirs')
will end up reparsing the dirstate file.
--- a/mercurial/dirstate.py Thu Jul 19 19:43:25 2007 -0300
+++ b/mercurial/dirstate.py Thu Jul 19 19:43:25 2007 -0300
@@ -164,8 +164,8 @@
def invalidate(self):
for a in "_map _copymap _branch _pl _dirs _ignore".split():
- if hasattr(self, a):
- self.__delattr__(a)
+ if a in self.__dict__:
+ delattr(self, a)
self._dirty = 0
def copy(self, source, dest):