# HG changeset patch # User Pierre-Yves David # Date 1631723819 -7200 # Node ID 938a7769050ca6a22eec2faecf555dddb0432a0a # Parent 70547a7d5930a5596a32e8fa77d677979704ec4e dirstate: support file tracked nowhere in `reset_state` This let the dirstatemap decide when to drop files. Differential Revision: https://phab.mercurial-scm.org/D11438 diff -r 70547a7d5930 -r 938a7769050c mercurial/dirstatemap.py --- a/mercurial/dirstatemap.py Wed Sep 15 18:30:06 2021 +0200 +++ b/mercurial/dirstatemap.py Wed Sep 15 18:36:59 2021 +0200 @@ -180,8 +180,8 @@ def reset_state( self, filename, - wc_tracked, - p1_tracked, + wc_tracked=False, + p1_tracked=False, p2_tracked=False, merged=False, clean_p1=False, @@ -206,7 +206,10 @@ self.copymap.pop(filename, None) if not (p1_tracked or p2_tracked or wc_tracked): - self.dropfile(filename) + old_entry = self._map.pop(filename, None) + self._dirs_decr(filename, old_entry=old_entry) + self.nonnormalset.discard(filename) + self.copymap.pop(filename, None) return elif merged: # XXX might be merged and removed ? @@ -576,8 +579,8 @@ def reset_state( self, filename, - wc_tracked, - p1_tracked, + wc_tracked=False, + p1_tracked=False, p2_tracked=False, merged=False, clean_p1=False,