Background:
First there was a base.c file, and this file was in a repository that had only one Base branch.
Base was forked to make an Extended throw. Then this new branch had several changes made to base.c
If the errors were fixed in the base.c file in Base , they would be combined with Extended .
It turns out that adding too much material to base.c in the Extended branch was not a good idea, so the file is copied to ext.c Then most of the Extended add-ons are removed from base.c and Base from ext.c Thus, at this point, base.c in Extended very similar, as in Base .
Problem:
When the file was split, Mercurial was informed that ext.c is a copy of base.c because they have a common history. Unfortunately, this was not a good idea.
Now, if errors are fixed on the Base branch and merged with Extended , Mercurial believes that these changes should be applied to both base.c and ext.c , although the latter no longer resembles the previous one. This makes the merge very annoying.
Is there a way to tell Mercurial that ext.c no longer be considered base.c ? One solution would be to replace ext.c with a new file, but then history would not follow.
source share