mercurial/dirstatemap.py
changeset 50126 85746485a4dd
parent 50125 eedbf8256263
child 50128 2f60cd6442fd
--- a/mercurial/dirstatemap.py	Wed Feb 22 00:53:51 2023 +0100
+++ b/mercurial/dirstatemap.py	Tue Feb 21 15:10:12 2023 +0100
@@ -58,6 +58,15 @@
         # for consistent view between _pl() and _read() invocations
         self._pendingmode = None
 
+    def _set_identity(self):
+        self.identity = self._get_current_identity()
+
+    def _get_current_identity(self):
+        try:
+            return util.cachestat(self._opener.join(self._filename))
+        except FileNotFoundError:
+            return None
+
     def preload(self):
         """Loads the underlying data, if it's not already loaded"""
         self._map
@@ -263,10 +272,7 @@
 
     def read(self):
         # ignore HG_PENDING because identity is used only for writing
-        try:
-            self.identity = util.cachestat(self._opener.join(self._filename))
-        except FileNotFoundError:
-            self.identity = None
+        self._set_identity()
 
         if self._use_dirstate_v2:
             if not self.docket.uuid:
@@ -529,12 +535,7 @@
             Fills the Dirstatemap when called.
             """
             # ignore HG_PENDING because identity is used only for writing
-            try:
-                self.identity = util.cachestat(
-                    self._opener.join(self._filename)
-                )
-            except FileNotFoundError:
-                self.identity = None
+            self._set_identity()
 
             if self._use_dirstate_v2:
                 if self.docket.uuid: