Mercurial > hg
changeset 50152:e9379b55ed80
dirstate: enforce context set_clean and set_possibly_dirty
We don't want them called within a `changing_parents` context, but we still want
them called within a context.
So we update the decorator accordingly
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 22 Feb 2023 03:20:19 +0100 |
parents | 092db6464321 |
children | 98890baf324e |
files | mercurial/dirstate.py |
diffstat | 1 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dirstate.py Wed Feb 22 03:35:18 2023 +0100 +++ b/mercurial/dirstate.py Wed Feb 22 03:20:19 2023 +0100 @@ -116,10 +116,13 @@ return check_invalidated(wrap) -def requires_not_changing_parents(func): +def requires_changing_files_or_status(func): def wrap(self, *args, **kwargs): - if self.is_changing_parents: - msg = 'calling `%s` inside of a changing_parents context' + if not (self.is_changing_files or self._running_status > 0): + msg = ( + 'calling `%s` outside of a changing_files ' + 'or running_status context' + ) msg %= func.__name__ raise error.ProgrammingError(msg) return func(self, *args, **kwargs) @@ -698,7 +701,7 @@ self._dirty_tracked_set = True return ret - @requires_not_changing_parents + @requires_changing_files_or_status def set_clean(self, filename, parentfiledata): """record that the current state of the file on disk is known to be clean""" self._dirty = True @@ -707,7 +710,7 @@ (mode, size, mtime) = parentfiledata self._map.set_clean(filename, mode, size, mtime) - @requires_not_changing_parents + @requires_changing_files_or_status def set_possibly_dirty(self, filename): """record that the current state of the file on disk is unknown""" self._dirty = True