dirstate: mark `clear` and `rebuild` as `require_changing_parents`
authorPierre-Yves David <pierre-yves.david@octobus.net>
Mon, 20 Feb 2023 14:06:15 +0100
changeset 50115 62f633f751a4
parent 50114 c175b4857498
child 50116 9b49809eb612
dirstate: mark `clear` and `rebuild` as `require_changing_parents` Yeah, more scoping!
mercurial/dirstate.py
--- a/mercurial/dirstate.py	Mon Feb 20 11:37:02 2023 +0100
+++ b/mercurial/dirstate.py	Mon Feb 20 14:06:15 2023 +0100
@@ -855,19 +855,15 @@
             return self._normalize(path, isknown, ignoremissing)
         return path
 
-    # XXX since this make the dirstate dirty, we should enforce that it is done
-    # withing an appropriate change-context that scope the change and ensure it
-    # eventually get written on disk (or rolled back)
     # XXX this method is barely used, as a result:
     # - its semantic is unclear
     # - do we really needs it ?
+    @requires_changing_parents
     def clear(self):
         self._map.clear()
         self._dirty = True
 
-    # XXX since this make the dirstate dirty, we should enforce that it is done
-    # withing an appropriate change-context that scope the change and ensure it
-    # eventually get written on disk (or rolled back)
+    @requires_changing_parents
     def rebuild(self, parent, allfiles, changedfiles=None):
         matcher = self._sparsematcher
         if matcher is not None and not matcher.always():