mercurial/dirstatemap.py
changeset 48060 a660d8a53267
parent 48059 5d68c4eedd66
child 48061 060cd909439f
--- a/mercurial/dirstatemap.py	Wed Sep 22 15:17:12 2021 +0200
+++ b/mercurial/dirstatemap.py	Wed Sep 22 17:46:29 2021 +0200
@@ -441,26 +441,11 @@
                     continue
 
                 # Discard "merged" markers when moving away from a merge state
-                if s.merged:
-                    source = self.copymap.get(f)
+                if s.merged or s.from_p2:
+                    source = self.copymap.pop(f, None)
                     if source:
                         copies[f] = source
-                    self.reset_state(
-                        f,
-                        wc_tracked=True,
-                        p1_tracked=True,
-                        possibly_dirty=True,
-                    )
-                # Also fix up otherparent markers
-                elif s.from_p2:
-                    source = self.copymap.get(f)
-                    if source:
-                        copies[f] = source
-                    self.reset_state(
-                        f,
-                        p1_tracked=False,
-                        wc_tracked=True,
-                    )
+                    s.drop_merge_data()
         return copies
 
     def read(self):