Merging with ancestor and DAG well-formedness

Mads Kiilerich mads at
Sat Dec 25 18:26:35 CST 2010

Please share your opinion here or comment on .

Is it an implicit invariant in the Mercurial repository data model that 
a merge always merges changesets that not are each others 
ancestor/descendant? Or is it only something that mostly is enforced at 
the command line API?

Is it a bug if we somehow ends up with a merge changeset where the 
parents are linearly related?

Is it thus ok if future operations (such as convert/rebase) on such 
repositories fails? Is it feasible at all to work correctly on such 
repositories - and is it well-defined what correct means?

Is it a bug in cvs2hg that it creates such changesets (to simulate cvs 

Is the "solution" at the bottom of a _very_ 
bad tip?

Or is Oedipus merges something that is convenient and acceptable in some 
cultures and something that the internal API and data model makes 
possible and that thus should be supported everywhere?

Matt pushed , and I assume 
that he thus implicitly gave some support towards maintaining a 
well-formedness invariant.


More information about the Mercurial-devel mailing list