dirstate: remove file from copymap on drop
authorMateusz Kwapich <mitrandir@fb.com>
Wed, 25 May 2016 16:09:07 -0700
changeset 29247 3e438497edca
parent 29246 8dbfd3befbd7
child 29248 e6de6ef3e426
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
mercurial/dirstate.py
--- a/mercurial/dirstate.py	Thu May 26 02:35:44 2016 +0000
+++ b/mercurial/dirstate.py	Wed May 25 16:09:07 2016 -0700
@@ -582,6 +582,8 @@
             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: