Previous discussion on this issue can be found at this link:This patch fix the behaviour of fullcopytracing algorithm in the case
Copying description from previous patch sent by Pulkit:
There can be cases when both the changesets which we are merging are notwhen 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
descendants of the merge base.content-divergence in evolve extension, In those cases dirtyc1 and dirtyc2 both will bewhere merge base is the common
true. The existing code assumes that either of them will be true always but thatpredecessor.
is not a right assumption.
Pulkit found this while working with content-divergence resolution. InPrevious 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.
content-divergence resolution, we use the common predecessor as the merge base
for resolving content divergence and there it can be possible that the mergeThis patch fix that error.
For refrence I suggest you to look into the previous discussion held
base is not the descendant of both the content-divergence changsets.on a patch sent by Pulkit: https://phab.mercurial-scm.org/D3896