mercurial/dirstatemap.py
changeset 50128 2f60cd6442fd
parent 50126 85746485a4dd
child 50252 a6b8b1ab9116
--- a/mercurial/dirstatemap.py	Wed Feb 22 01:04:55 2023 +0100
+++ b/mercurial/dirstatemap.py	Wed Feb 22 01:08:25 2023 +0100
@@ -67,6 +67,25 @@
         except FileNotFoundError:
             return None
 
+    def may_need_refresh(self):
+        if 'identity' not in vars(self):
+            # no existing identity, we need a refresh
+            return True
+        if self.identity is None:
+            return True
+        if not self.identity.cacheable():
+            # We cannot trust the entry
+            # XXX this is a problem on windows, NFS, or other inode less system
+            return True
+        current_identity = self._get_current_identity()
+        if current_identity is None:
+            return True
+        if not current_identity.cacheable():
+            # We cannot trust the entry
+            # XXX this is a problem on windows, NFS, or other inode less system
+            return True
+        return current_identity != self.identity
+
     def preload(self):
         """Loads the underlying data, if it's not already loaded"""
         self._map