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
--- 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)