copies: no longer change the sidedata flag
authorPierre-Yves David <pierre-yves.david@octobus.net>
Fri, 25 Sep 2020 14:54:43 +0200
changeset 45639 7a757e893532
parent 45638 4f876e6b30fa
child 45640 2693659c2b34
copies: no longer change the sidedata flag With the new sidedata storage that include data about all file changes, every revision has one, so the sidedata flag is not longer a good way to spot changeset with copy information. So we drop this check to simplify the code We optimisation itself provided an interesting speedup, so we will likely reintroduce something similar, with a dedicated flag, in the future. Differential Revision: https://phab.mercurial-scm.org/D9116
mercurial/copies.py
--- a/mercurial/copies.py	Fri Sep 25 14:52:34 2020 +0200
+++ b/mercurial/copies.py	Fri Sep 25 14:54:43 2020 +0200
@@ -13,8 +13,6 @@
 from .i18n import _
 
 
-from .revlogutils.flagutil import REVIDX_SIDEDATA
-
 from . import (
     match as matchmod,
     node,
@@ -202,7 +200,6 @@
         return ismerged
 
     changelogrevision = cl.changelogrevision
-    flags = cl.flags
 
     # A small cache to avoid doing the work twice for merges
     #
@@ -232,28 +229,23 @@
     def revinfo(rev):
         p1, p2 = parents(rev)
         value = None
-        if flags(rev) & REVIDX_SIDEDATA:
-            e = merge_caches.pop(rev, None)
-            if e is not None:
-                return e
-            c = changelogrevision(rev)
-            p1copies = c.p1copies
-            p2copies = c.p2copies
-            removed = c.filesremoved
-            if p1 != node.nullrev and p2 != node.nullrev:
-                # XXX some case we over cache, IGNORE
-                value = merge_caches[rev] = (
-                    p1,
-                    p2,
-                    p1copies,
-                    p2copies,
-                    removed,
-                    get_ismerged(rev),
-                )
-        else:
-            p1copies = {}
-            p2copies = {}
-            removed = []
+        e = merge_caches.pop(rev, None)
+        if e is not None:
+            return e
+        c = changelogrevision(rev)
+        p1copies = c.p1copies
+        p2copies = c.p2copies
+        removed = c.filesremoved
+        if p1 != node.nullrev and p2 != node.nullrev:
+            # XXX some case we over cache, IGNORE
+            value = merge_caches[rev] = (
+                p1,
+                p2,
+                p1copies,
+                p2copies,
+                removed,
+                get_ismerged(rev),
+            )
 
         if value is None:
             value = (p1, p2, p1copies, p2copies, removed, get_ismerged(rev))