# HG changeset patch # User Pierre-Yves David # Date 1626447819 -7200 # Node ID 4f0ebf83e4dccb1d2fcc6bf608e01e3236ff302f # Parent d5b54917eb92c20298e7d73cfa5942b90197ac82 dirstatemap: conclude `reset_state` with logic using the new __init__ Now the DirstateItem can deal with most of the logic related to its initialization, our goal is to migrate the function to a more "unified" way were minimal processing is done early before more generic code gets into play. Nobody is calling this code yet, but this is about to change. Differential Revision: https://phab.mercurial-scm.org/D11322 diff -r d5b54917eb92 -r 4f0ebf83e4dc mercurial/dirstatemap.py --- 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]