# HG changeset patch # User Pierre-Yves David # Date 1601038483 -7200 # Node ID 7a757e89353251840d2bcfd328de4b122772b98c # Parent 4f876e6b30fa06fef8d2b080b1a8c0d92e0e04aa 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 diff -r 4f876e6b30fa -r 7a757e893532 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))