mercurial/dirstatemap.py
changeset 47897 4f0ebf83e4dc
parent 47896 d5b54917eb92
child 47898 442711f2c447
--- a/mercurial/dirstatemap.py	Fri Jul 16 16:29:16 2021 +0200
+++ b/mercurial/dirstatemap.py	Fri Jul 16 17:03:39 2021 +0200
@@ -313,6 +313,28 @@
         else:
             assert False, 'unreachable'
 
+        old_entry = self._map.get(filename)
+        self._dirs_incr(filename, old_entry)
+        entry = DirstateItem(
+            wc_tracked=wc_tracked,
+            p1_tracked=p1_tracked,
+            p2_tracked=p2_tracked,
+            merged=merged,
+            clean_p1=clean_p1,
+            clean_p2=clean_p2,
+            possibly_dirty=possibly_dirty,
+            parentfiledata=parentfiledata,
+        )
+        if entry.dm_nonnormal:
+            self.nonnormalset.add(filename)
+        else:
+            self.nonnormalset.discard(filename)
+        if entry.dm_otherparent:
+            self.otherparentset.add(filename)
+        else:
+            self.otherparentset.discard(filename)
+        self._map[filename] = entry
+
     def set_untracked(self, f):
         """Mark a file as no longer tracked in the dirstate map"""
         entry = self[f]