comparison mercurial/dirstate.py @ 47599:cce51119bfe6

dirstate: add a `set_untracked` method for "hg remove"-like usage This is a step further toward clarifying the semantic of various dirstate call. See the justification for adding `set_tracked` for details. Differential Revision: https://phab.mercurial-scm.org/D11019
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 08 Jul 2021 00:54:40 +0200
parents 0cef28b121a4
children e2e72daac90b
comparison
equal deleted inserted replaced
47598:305356a7ec99 47599:cce51119bfe6
477 return True 477 return True
478 elif not entry.tracked: 478 elif not entry.tracked:
479 self.normallookup(filename) 479 self.normallookup(filename)
480 return True 480 return True
481 return False 481 return False
482
483 @requires_no_parents_change
484 def set_untracked(self, filename):
485 """a "public" method for generic code to mark a file as untracked
486
487 This function is to be called outside of "update/merge" case. For
488 example by a command like `hg remove X`.
489
490 return True the file was previously tracked, False otherwise.
491 """
492 entry = self._map.get(filename)
493 if entry is None:
494 return False
495 elif entry.added:
496 self._drop(filename)
497 return True
498 else:
499 self._remove(filename)
500 return True
482 501
483 @requires_parents_change 502 @requires_parents_change
484 def update_file_reference( 503 def update_file_reference(
485 self, 504 self,
486 filename, 505 filename,