changeset 47720:b0314d8deee1

dirstate: add a `set_possibly_dirty` method This method will be able to replace some usage of `normallookup` in the future. Differential Revision: https://phab.mercurial-scm.org/D11162
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 18 Jul 2021 23:42:22 +0200
parents 1168e54b727c
children d46d3aefd00b
files mercurial/dirstate.py mercurial/dirstatemap.py
diffstat 2 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/dirstate.py	Mon Jul 19 00:29:36 2021 +0200
+++ b/mercurial/dirstate.py	Sun Jul 18 23:42:22 2021 +0200
@@ -506,6 +506,13 @@
         self._updatedfiles.add(filename)
         self._normal(filename, parentfiledata=parentfiledata)
 
+    @requires_no_parents_change
+    def set_possibly_dirty(self, filename):
+        """record that the current state of the file on disk is unknown"""
+        self._dirty = True
+        self._updatedfiles.add(filename)
+        self._map.set_possibly_dirty(filename)
+
     @requires_parents_change
     def update_file_p1(
         self,
--- a/mercurial/dirstatemap.py	Mon Jul 19 00:29:36 2021 +0200
+++ b/mercurial/dirstatemap.py	Sun Jul 18 23:42:22 2021 +0200
@@ -168,6 +168,10 @@
             normed = util.normcase(filename)
             self.filefoldmap.pop(normed, None)
 
+    def set_possibly_dirty(self, filename):
+        """record that the current state of the file on disk is unknown"""
+        self[filename].set_possibly_dirty()
+
     def addfile(
         self,
         f,
@@ -907,6 +911,12 @@
                 f[normcase(name)] = name
             return f
 
+        def set_possibly_dirty(self, filename):
+            """record that the current state of the file on disk is unknown"""
+            entry = self[filename]
+            entry.set_possibly_dirty()
+            self._rustmap.set_v1(filename, entry)
+
         def __setitem__(self, key, value):
             assert isinstance(value, DirstateItem)
             self._rustmap.set_v1(key, value)