[Request] [+ ] D11571: dirstatemap: add a common `_refresh_entry` method for dirstatemap
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Sat Oct 2 15:05:17 UTC 2021
marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
This method is called once a DirstateItem have been modified to apply the
change on the dirstatemap if necessary.
Each variant have a different implementation (which is ⦠the point).
We use `addfile` for the rustmap and not `set_dirstate_item` because we need to
keep the internal counter up to date and `set_dirstate_item` does not do it.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D11571
AFFECTED FILES
mercurial/dirstatemap.py
CHANGE DETAILS
diff --git a/mercurial/dirstatemap.py b/mercurial/dirstatemap.py
--- a/mercurial/dirstatemap.py
+++ b/mercurial/dirstatemap.py
@@ -98,6 +98,9 @@
tracking in a different way.
"""
+ def _refresh_entry(self, f, entry):
+ """record updated state of an entry"""
+
class dirstatemap(_dirstatemapcommon):
"""Map encapsulating the dirstate's contents.
@@ -381,6 +384,10 @@
### code related to manipulation of entries and copy-sources
+ def _refresh_entry(self, f, entry):
+ if not entry.any_tracked:
+ self._map.pop(f, None)
+
def set_possibly_dirty(self, filename):
"""record that the current state of the file on disk is unknown"""
self[filename].set_possibly_dirty()
@@ -770,6 +777,12 @@
### code related to manipulation of entries and copy-sources
+ def _refresh_entry(self, f, entry):
+ if not entry.any_tracked:
+ self._map.drop_item_and_copy_source(f)
+ else:
+ self._map.addfile(f, entry)
+
def set_possibly_dirty(self, filename):
"""record that the current state of the file on disk is unknown"""
entry = self[filename]
To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20211002/74a1ce5c/attachment-0001.html>
More information about the Mercurial-patches
mailing list