diff mercurial/dirstate.py @ 5080:b304c2496f52

dirstate: fix rebuild; add a test If rebuild calls invalidate, it will just queue a (re)read of the dirstate file, while what we really want is to empty the current state.
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Sun, 05 Aug 2007 23:04:56 -0300
parents 6b3ed43f77ba
children 79373ec3f27d
line wrap: on
line diff
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -240,8 +240,14 @@ class dirstate(object):
                 self._ui.warn(_("not in dirstate: %s!\n") % f)
                 pass
 
+    def clear(self):
+        self._map = {}
+        self._copymap = {}
+        self._pl = [nullid, nullid]
+        self.markdirty()
+
     def rebuild(self, parent, files):
-        self.invalidate()
+        self.clear()
         for f in files:
             if files.execf(f):
                 self._map[f] = ('n', 0777, -1, 0)