diff mercurial/revlog.py @ 44366:76a96e3a2bbb

nodemap: keep track of the docket for loaded data To perform incremental update of the on disk data, we need to keep tracks of some aspect of that data. Differential Revision: https://phab.mercurial-scm.org/D7885
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 15 Jan 2020 15:49:45 +0100
parents 671f9479af0e
children e41a164db7a9
line wrap: on
line diff
--- a/mercurial/revlog.py	Wed Jan 15 15:49:35 2020 +0100
+++ b/mercurial/revlog.py	Wed Jan 15 15:49:45 2020 +0100
@@ -455,6 +455,7 @@
         self._maxchainlen = None
         self._deltabothparents = True
         self.index = None
+        self._nodemap_docket = None
         # Mapping of partial identifiers to full nodes.
         self._pcache = {}
         # Mapping of revision integer to full node.
@@ -544,6 +545,9 @@
         indexdata = b''
         self._initempty = True
         try:
+            nodemap_data = nodemaputil.persisted_data(self)
+            if nodemap_data is not None:
+                self._nodemap_docket = nodemap_data[0]
             with self._indexfp() as f:
                 if (
                     mmapindexthreshold is not None
@@ -635,7 +639,7 @@
             if use_nodemap:
                 nodemap_data = nodemaputil.persisted_data(self)
                 if nodemap_data is not None:
-                    index.update_nodemap_data(nodemap_data)
+                    index.update_nodemap_data(nodemap_data[1])
         except (ValueError, IndexError):
             raise error.RevlogError(
                 _(b"index %s is corrupted") % self.indexfile