Mercurial > hg
diff mercurial/dirstate.py @ 50128:2f60cd6442fd
dirstate: only reload the dirstate when it may have changed
This reinstall the equivalent of what the `filecache` was doing. However it does
it at the dirstate level.
There is a double motivation for this:
- This avoid duplicating logic with the dirstate "identity" logic.
- This increase the lifetime of the `dirstate` object, helping to implement
change scoping.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 22 Feb 2023 01:08:25 +0100 |
parents | 4e95341c89aa |
children | 3c6546b149ed |
line wrap: on
line diff
--- a/mercurial/dirstate.py Wed Feb 22 01:04:55 2023 +0100 +++ b/mercurial/dirstate.py Wed Feb 22 01:08:25 2023 +0100 @@ -190,6 +190,12 @@ # raises an exception). self._cwd + def refresh(self): + if '_branch' in vars(self): + del self._branch + if '_map' in vars(self) and self._map.may_need_refresh(): + self.invalidate() + def prefetch_parents(self): """make sure the parents are loaded