--- a/mercurial/copies.py Tue Jan 15 16:50:50 2019 -0800
+++ b/mercurial/copies.py Tue Jan 15 16:55:20 2019 -0800
@@ -45,11 +45,15 @@
# - quit when interesting revs is zero
cl = repo.changelog
+ wdirparents = None
a = ctxa.rev()
b = ctxb.rev()
if a is None:
+ wdirparents = (ctxa.p1(), ctxa.p2())
a = node.wdirrev
if b is None:
+ assert not wdirparents
+ wdirparents = (ctxb.p1(), ctxb.p2())
b = node.wdirrev
side = {a: -1, b: 1}
@@ -61,7 +65,7 @@
while interesting:
r = -heapq.heappop(visit)
if r == node.wdirrev:
- parents = [cl.rev(p) for p in repo.dirstate.parents()]
+ parents = [pctx.rev() for pctx in wdirparents]
else:
parents = cl.parentrevs(r)
if parents[1] == node.nullrev: