D978: dirstate: move write into dirstatemap

durham (Durham Goode) phabricator at mercurial-scm.org
Fri Oct 6 17:19:44 UTC 2017


durham created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  As part of separating the dirstate business logic from the dirstate storage
  logic, let's move the serialization code down into dirstatemap.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D978

AFFECTED FILES
  mercurial/dirstate.py

CHANGE DETAILS

diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -739,12 +739,10 @@
                     now = end # trust our estimate that the end is near now
                     break
 
-        st.write(parsers.pack_dirstate(self._map._map, self._map.copymap,
-                                       self._pl, now))
+        self._map.write(st, now)
         self._nonnormalset, self._otherparentset = self._map.nonnormalentries()
-        st.close()
         self._lastnormaltime = 0
-        self._dirty = self._map._dirtyparents = False
+        self._dirty = False
 
     def _dirignore(self, f):
         if f == '.':
@@ -1401,3 +1399,9 @@
         p = parse_dirstate(self._map, self.copymap, st)
         if not self._dirtyparents:
             self.setparents(*p)
+
+    def write(self, st, now):
+        st.write(parsers.pack_dirstate(self._map, self.copymap,
+                                       self.parents(), now))
+        st.close()
+        self._dirtyparents = False



To: durham, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list