comparison mercurial/dirstatemap.py @ 47897:4f0ebf83e4dc

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
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 16 Jul 2021 17:03:39 +0200
parents d5b54917eb92
children 442711f2c447
comparison
equal deleted inserted replaced
47896:d5b54917eb92 47897:4f0ebf83e4dc
311 self.nonnormalset.discard(filename) 311 self.nonnormalset.discard(filename)
312 return 312 return
313 else: 313 else:
314 assert False, 'unreachable' 314 assert False, 'unreachable'
315 315
316 old_entry = self._map.get(filename)
317 self._dirs_incr(filename, old_entry)
318 entry = DirstateItem(
319 wc_tracked=wc_tracked,
320 p1_tracked=p1_tracked,
321 p2_tracked=p2_tracked,
322 merged=merged,
323 clean_p1=clean_p1,
324 clean_p2=clean_p2,
325 possibly_dirty=possibly_dirty,
326 parentfiledata=parentfiledata,
327 )
328 if entry.dm_nonnormal:
329 self.nonnormalset.add(filename)
330 else:
331 self.nonnormalset.discard(filename)
332 if entry.dm_otherparent:
333 self.otherparentset.add(filename)
334 else:
335 self.otherparentset.discard(filename)
336 self._map[filename] = entry
337
316 def set_untracked(self, f): 338 def set_untracked(self, f):
317 """Mark a file as no longer tracked in the dirstate map""" 339 """Mark a file as no longer tracked in the dirstate map"""
318 entry = self[f] 340 entry = self[f]
319 self._dirs_decr(f, old_entry=entry, remove_variant=True) 341 self._dirs_decr(f, old_entry=entry, remove_variant=True)
320 if entry.from_p2: 342 if entry.from_p2: