diff -r b5891bf8ab13 -r fbec9c0b32d3 mercurial/copies.py --- a/mercurial/copies.py Thu Jul 12 09:25:02 2018 -0700 +++ b/mercurial/copies.py Thu Jul 12 08:22:28 2018 -0700 @@ -416,14 +416,14 @@ # common ancestor or not without explicitly checking it, it's better to # determine that here. # - # base.descendant(wc) is False, work around that + # base.isancestorof(wc) is False, work around that _c1 = c1.p1() if c1.rev() is None else c1 _c2 = c2.p1() if c2.rev() is None else c2 # an endpoint is "dirty" if it isn't a descendant of the merge base # if we have a dirty endpoint, we need to trigger graft logic, and also # keep track of which endpoint is dirty - dirtyc1 = not base.descendant(_c1) - dirtyc2 = not base.descendant(_c2) + dirtyc1 = not base.isancestorof(_c1) + dirtyc2 = not base.isancestorof(_c2) graft = dirtyc1 or dirtyc2 tca = base if graft: