HomePhabricator

copies: handle a case when both merging csets are not descendant of merge base

Authored by khanchi97.

Description

copies: handle a case when both merging csets are not descendant of merge base

This patch fix the behaviour of fullcopytracing algorithm in the case
when both the merging csets are not the descendant of merge base.
Although it seems to be the rare case when both the csets are not
descendant of merge base. But it can be seen in most of cases of
content-divergence in evolve extension, where merge base is the common
predecessor.
Previous patch added a test where this algorithm can fail to continue
because of an assumption that only one of the two csets can be dirty.
This patch fix that error.

For refrence I suggest you to look into the previous discussion held
on a patch sent by Pulkit: https://phab.mercurial-scm.org/D3896

Differential Revision: https://phab.mercurial-scm.org/D5963