# HG changeset patch # User Martin von Zweigbergk # Date 2019-06-20 06:14:10 # Node ID e7c55e24d6bfba359f7b02bc91ad8ce77c377fc3 # Parent 15f04d652b627f6fd17117eb8bfa997e4f93bdcf copies: avoid reusing the same variable for two different copy dicts "childcopies" is initally the copies the current changeset to one of its children and then we reassign it with the copies from the start of the chain to the child. Let's use different names for these two things. Differential Revision: https://phab.mercurial-scm.org/D6564 diff --git a/mercurial/copies.py b/mercurial/copies.py --- a/mercurial/copies.py +++ b/mercurial/copies.py @@ -312,15 +312,15 @@ def _changesetforwardcopies(a, b, match) if match(dst)} # Copy the dict only if later iterations will also need it if i != len(children[r]) - 1: - copies = copies.copy() - if childcopies: - childcopies = _chain(copies, childcopies) + newcopies = copies.copy() else: - childcopies = copies + newcopies = copies + if childcopies: + newcopies = _chain(newcopies, childcopies) for f in childctx.filesremoved(): - if f in childcopies: - del childcopies[f] - heapq.heappush(work, (c, parent, childcopies)) + if f in newcopies: + del newcopies[f] + heapq.heappush(work, (c, parent, newcopies)) assert False def _forwardcopies(a, b, match=None):