copies: do not initialize the dictionary with root in changeset copies
We don't strictly need the dict to be prefiled with `{}`. Not doing so will make
the next changeset simpler. This part of a preparation to use native code for
this part of copy tracing.
--- a/mercurial/copies.py Wed Nov 13 20:42:08 2019 +0100
+++ b/mercurial/copies.py Wed Nov 13 09:39:44 2019 +0100
@@ -281,10 +281,13 @@
iterrevs &= mrset
iterrevs.update(roots)
iterrevs.remove(b.rev())
- all_copies = {r: {} for r in roots}
+ all_copies = {}
alwaysmatch = match.always()
for r in sorted(iterrevs):
- copies = all_copies.pop(r)
+ copies = all_copies.pop(r, None)
+ if copies is None:
+ # this is a root
+ copies = {}
for i, c in enumerate(children[r]):
p1, p2, p1copies, p2copies, removed = revinfo(c)
if r == p1: