mercurial/dirstate.py
changeset 5080 b304c2496f52
parent 4935 6b3ed43f77ba
child 5082 79373ec3f27d
--- 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)