movedirstate: get copies from dirstate before setting parents
Setting dirstate parents can modify the copies recorded in the
dirstate when there are two dirstate parents. I don't think we ever
call movedirstate() when there is more than one parent, but it seems
clearer to get the copies from the dirstate first anyway.
Differential Revision: https://phab.mercurial-scm.org/D7800
--- a/mercurial/scmutil.py Thu Dec 12 14:31:11 2019 -0800
+++ b/mercurial/scmutil.py Fri Dec 27 12:41:56 2019 -0800
@@ -1431,8 +1431,8 @@
"""
oldctx = repo[b'.']
ds = repo.dirstate
+ copies = dict(ds.copies())
ds.setparents(newctx.node(), nullid)
- copies = dict(ds.copies())
s = newctx.status(oldctx, match=match)
for f in s.modified:
if ds[f] == b'r':