# HG changeset patch # User Mateusz Kwapich # Date 2016-05-25 23:09:07 # Node ID 3e438497edcab16bf3048e26136a40204b50fc06 # Parent 8dbfd3befbd79b5a441175a952cf83833173be41 dirstate: remove file from copymap on drop As the copymap is short-lived object regenerated from dirstate on each read this didn't affect us in any serious way. But since I've started working on permanent storage of copymap in my experiments with sqldirstate[1] I've seen this bug leaving the copy information in copymap after reverting the file moves and copies. [1] https://www.mercurial-scm.org/wiki/SQLDirstatePlan diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -582,6 +582,8 @@ class dirstate(object): del self._map[f] if f in self._nonnormalset: self._nonnormalset.remove(f) + if f in self._copymap: + del self._copymap[f] def _discoverpath(self, path, normed, ignoremissing, exists, storemap): if exists is None: