[darcs-users] Fwd: Towards a conflict-free revision control system.

Ian Lynagh igloo at earth.li
Wed Feb 11 19:27:33 UTC 2009

On Thu, Feb 05, 2009 at 10:59:08AM +0000, Grant Husbands wrote:
> Ian Lynagh wrote:
> > It sounds like you are conflating "conflict" and "dependency".
> > Two patches in parallel may conflict with each other. With two patches
> > in series, the later one may depend on the earlier one.
> I think I'll interject, here; I think they are very similar.

They are certainly related concepts, but fundamentally different in my

When merging, it is crucial that you can merge any two repos, and there
is a nice solution to how this should work in the case of conflicts: You
get both patches in your history, but the effect of neither is applied.

But it is not crucial that it is possible to cherry-pick any given
change; it's nice, sure, but not crucial. Indeed, in many RCSs it's not
possible to do it at all.

And what should it mean to cherry pick a patch without one of its
dependencies? You get a patch that you can't apply?

The above is all at the primitive patch level. At the megapatch level
(which is to say, the composite patches that "darcs record" creates),
ignoring dependencies when cherrypicking can make some sense. If the
megapatch P is composed of the primitive patches A,B,C, and the
megapatch Q is composed of the primitive patches D,E,F, and E depends on
B, then it would be nice to be able to tell darcs to force-pull Q, and
end up with the primitive patches B,D,E,F applied to your working repo
(but you would not have Q in your repository).


More information about the darcs-users mailing list