diff --git a/mercurial/copies.py b/mercurial/copies.py --- a/mercurial/copies.py +++ b/mercurial/copies.py @@ -141,7 +141,7 @@ def _tracefile(fctx, am, limit=-1): def _dirstatecopies(d): ds = d._repo.dirstate c = ds.copies().copy() - for k in c.keys(): + for k in list(c): if ds[k] not in 'anm': del c[k] return c @@ -494,7 +494,7 @@ def _fullcopytracing(repo, c1, c2, base) renamedelete = {} renamedeleteset = set() divergeset = set() - for of, fl in diverge.items(): + for of, fl in list(diverge.items()): if len(fl) == 1 or of in c1 or of in c2: del diverge[of] # not actually divergent, or not a rename if of not in c1 and of not in c2: diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -1029,7 +1029,7 @@ def calculateupdates(repo, wctx, mctx, a # bids is a mapping from action method to list af actions # Consensus? if len(bids) == 1: # all bids are the same kind of method - m, l = bids.items()[0] + m, l = list(bids.items())[0] if all(a == l[0] for a in l[1:]): # len(bids) is > 1 repo.ui.note(_(" %s: consensus for %s\n") % (f, m)) actions[f] = l[0] @@ -1055,7 +1055,7 @@ def calculateupdates(repo, wctx, mctx, a for _f, args, msg in l: repo.ui.note(' %s -> %s\n' % (msg, m)) # Pick random action. TODO: Instead, prompt user when resolving - m, l = bids.items()[0] + m, l = list(bids.items())[0] repo.ui.warn(_(' %s: ambiguous merge - picked %s action\n') % (f, m)) actions[f] = l[0]