This logic is complicated enough to deserves its own function. So it now does.
This will make it easier to reuse that logic in later changeset.
( )
Alphare | |
pulkit |
hg-reviewers |
This logic is complicated enough to deserves its own function. So it now does.
This will make it easier to reuse that logic in later changeset.
No Linters Available |
No Unit Test Coverage |
Path | Packages | |||
---|---|---|---|---|
M | mercurial/dirstatemap.py (27 lines) |
Commit | Parents | Author | Summary | Date |
---|---|---|---|---|
d30afc014971 | fc076861ac11 | Pierre-Yves David | Jul 14 2021, 7:58 PM |
"""incremente the dirstate counter if applicable""" | """incremente the dirstate counter if applicable""" | ||||
if ( | if ( | ||||
old_entry is None or old_entry.removed | old_entry is None or old_entry.removed | ||||
) and "_dirs" in self.__dict__: | ) and "_dirs" in self.__dict__: | ||||
self._dirs.addpath(filename) | self._dirs.addpath(filename) | ||||
if old_entry is None and "_alldirs" in self.__dict__: | if old_entry is None and "_alldirs" in self.__dict__: | ||||
self._alldirs.addpath(filename) | self._alldirs.addpath(filename) | ||||
def _dirs_decr(self, filename, old_entry=None): | |||||
"""decremente the dirstate counter if applicable""" | |||||
if old_entry is not None: | |||||
if "_dirs" in self.__dict__ and not old_entry.removed: | |||||
self._dirs.delpath(filename) | |||||
if "_alldirs" in self.__dict__: | |||||
self._alldirs.delpath(filename) | |||||
if "filefoldmap" in self.__dict__: | |||||
normed = util.normcase(filename) | |||||
self.filefoldmap.pop(normed, None) | |||||
def addfile( | def addfile( | ||||
self, | self, | ||||
f, | f, | ||||
mode=0, | mode=0, | ||||
size=None, | size=None, | ||||
mtime=None, | mtime=None, | ||||
added=False, | added=False, | ||||
merged=False, | merged=False, | ||||
self.nonnormalset.add(f) | self.nonnormalset.add(f) | ||||
def dropfile(self, f): | def dropfile(self, f): | ||||
""" | """ | ||||
Remove a file from the dirstate. Returns True if the file was | Remove a file from the dirstate. Returns True if the file was | ||||
previously recorded. | previously recorded. | ||||
""" | """ | ||||
old_entry = self._map.pop(f, None) | old_entry = self._map.pop(f, None) | ||||
exists = False | self._dirs_decr(f, old_entry=old_entry) | ||||
oldstate = b'?' | |||||
if old_entry is not None: | |||||
exists = True | |||||
oldstate = old_entry.state | |||||
if exists: | |||||
if oldstate != b"r" and "_dirs" in self.__dict__: | |||||
self._dirs.delpath(f) | |||||
if "_alldirs" in self.__dict__: | |||||
self._alldirs.delpath(f) | |||||
if "filefoldmap" in self.__dict__: | |||||
normed = util.normcase(f) | |||||
self.filefoldmap.pop(normed, None) | |||||
self.nonnormalset.discard(f) | self.nonnormalset.discard(f) | ||||
return exists | return old_entry is not None | ||||
def clearambiguoustimes(self, files, now): | def clearambiguoustimes(self, files, now): | ||||
for f in files: | for f in files: | ||||
e = self.get(f) | e = self.get(f) | ||||
if e is not None and e.need_delay(now): | if e is not None and e.need_delay(now): | ||||
e.set_possibly_dirty() | e.set_possibly_dirty() | ||||
self.nonnormalset.add(f) | self.nonnormalset.add(f) | ||||