D11417: dirstate: move the copymap drop inside dropfile
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Tue Sep 14 21:20:28 UTC 2021
marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
Since the copymap is part of the dirstatemap it make more sense for the
dirstatemap to manage it directly.
This is part of a generic effort to move unified logic at lower level and to
clean up higher level API.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D11417
AFFECTED FILES
mercurial/dirstate.py
mercurial/dirstatemap.py
CHANGE DETAILS
diff --git a/mercurial/dirstatemap.py b/mercurial/dirstatemap.py
--- a/mercurial/dirstatemap.py
+++ b/mercurial/dirstatemap.py
@@ -316,6 +316,7 @@
old_entry = self._map.pop(f, None)
self._dirs_decr(f, old_entry=old_entry)
self.nonnormalset.discard(f)
+ self.copymap.pop(f, None)
return old_entry is not None
def clearambiguoustimes(self, files, now):
@@ -652,8 +653,9 @@
def removefile(self, *args, **kwargs):
return self._rustmap.removefile(*args, **kwargs)
- def dropfile(self, *args, **kwargs):
- return self._rustmap.dropfile(*args, **kwargs)
+ def dropfile(self, f, *args, **kwargs):
+ self._rustmap.copymap().pop(f, None)
+ return self._rustmap.dropfile(f, *args, **kwargs)
def clearambiguoustimes(self, *args, **kwargs):
return self._rustmap.clearambiguoustimes(*args, **kwargs)
diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -749,7 +749,6 @@
if self._map.dropfile(filename):
self._dirty = True
self._updatedfiles.add(filename)
- self._map.copymap.pop(filename, None)
def _discoverpath(self, path, normed, ignoremissing, exists, storemap):
if exists is None:
To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list