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

Jean-Philippe Bernardy bernardy at chalmers.se
Wed Feb 4 11:05:39 UTC 2009

On Mon, Feb 2, 2009 at 11:13 PM, Eric Kow <kowey at darcs.net> wrote:
> I hope to read your explanation of weights later (looks helpful!)
>> Ok, I do not understand the details, but I don't think it matters very
>> much in the end: the fact that the applicability of a patch depends on
>> the context will necessarily introduce some sort of a search. The
>> problem boils down to this: let's say you have 'n' patches in your
>> repository, that potentially conflict with each other. Can they be
>> applied in an order that produces no conflict (or least conflicts)?
> This is why I still have the slight feeling of crossed wires, i.e. that
> we would understand each other perfectly were it not for a little
> detail.
> In darcs, given two patches with the same context, whether or not
> patches conflict with each other is completely independent of the order
> in which you apply them.  As far as I understand darcs, if you can
> merge one way way without conflicts, you surely can merge the other way
> as well.  Am I looking at this in too narrow a way?  For example, maybe
> the notion of patch context is irrelevant to your view?
> Anyway, maybe this will be clearer to me as I read your explanation of
> weights.

It boils down to this: I have the feeling that the commutation
business works great as long
as there is no conflict, but if there is, it "breaks down". It is
simply not a good model for what's
going on in presence of conflicts.

My work on this actually started because darcs "refused" to work in
conflicted states.
(That's a very long time ago -- I don't really know if this is fixed
in darcs 2)

Say, maybe there is a conflict "somewhere" in the tree, but I don't
care about it for the moment: I don't
think it's any of the VC system responsibility to prevent me to record
patches, etc.
Maybe I want to rollback a patch made some time ago, and that would
introduce conflicts...
I want to be able to do it: maybe the conflicts introduced are not
important, or easy to fix.

The main idea behind my system is thus to work exactly in the same way
if there are conflicts or not,
at least internally.


More information about the darcs-users mailing list