diff mercurial/dirstatemap.py @ 52970:42f78c859dd1

branching: merge with stable
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 18 Feb 2025 22:49:43 +0100
parents 0bd91b0a1a93 e16065bb7f42
children 469b9a628b51
line wrap: on
line diff
--- a/mercurial/dirstatemap.py	Tue Feb 18 16:57:50 2025 +0100
+++ b/mercurial/dirstatemap.py	Tue Feb 18 22:49:43 2025 +0100
@@ -197,6 +197,7 @@
                 )
             else:
                 raise error.CorruptedDirstate(b"dirstate is not in v2 format")
+            testing.wait_on_cfg(self._ui, b'dirstate.post-docket-read-file')
         return self._docket
 
     def _read_v2_data(self):
@@ -673,7 +674,6 @@
             Fills the Dirstatemap when called.
             """
             # ignore HG_PENDING because identity is used only for writing
-            self._set_identity()
 
             testing.wait_on_cfg(self._ui, b'dirstate.pre-read-file')
             if self._use_dirstate_v2:
@@ -713,7 +713,6 @@
             return self._map
 
         def _get_rust_identity(self):
-            self._set_identity()
             identity = None
             if self.identity is not None and self.identity.stat is not None:
                 stat_info = self.identity.stat
@@ -733,8 +732,9 @@
             return identity
 
         def _v1_map(self, from_v2_exception=None):
-            identity = self._get_rust_identity()
             try:
+                self._set_identity()
+                identity = self._get_rust_identity()
                 self._map, parents = rustmod.DirstateMap.new_v1(
                     self._readdirstatefile(), identity
                 )