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

Florent Becker florent.becker at ens-lyon.org
Thu Jan 8 14:48:42 UTC 2009


Jean-Philippe Bernardy wrote:

> On Wed, Jan 7, 2009 at 2:23 PM, Eric Kow <kowey at darcs.net> wrote:
> 
>> Very interesting.  Thanks very much for sharing that!
> 
> Thanks for the feedback!
> 
>>> We do not have the intention to develop the prototype any further (for
>>> the moment at least), but we thought you might be interested in at least
>>> taking a look at the work and the underlying ideas. We'll be happy to
>>> answer questions if you have any.
>>
>> First (of two) questions: what, in a nutshell, does it mean not to have
>> any
>> conflicts?  Clearly, there can be conflicting situations (i.e. two people
>> edit
>> different parts of a file).  How roughly does your idea cope with them? 
>> As you can see, I haven't yet had the chance to read the paper, but was
>> hoping for a little bit more of a taster (now that I've had the teaser)
> 
> Let me step back a little to give a complete answer. First of all, we
> know that some
> structures are inherently conflict-free. For example, take a bank
> account: just can
> spend money from your account while your employer pays you,
> concurrently. The order
> in which those operations happen does not matter (they commute), so, no
> problem. But, wait a minute: what if your bank does not allow to go below
> zero on your account?
> Then the order matters, and we have conflicts again.
> 
> This example illustrates that by generalizing a structure, we can
> remove the problem
> of commutation. Some states of the generalized structure might not be
> very "pleasing"
> (eg. a very big negative amount on your account), but it "smoothes
> out" difficulties.
> 
> The question now is: what is a good generalized structure for a
> project source-tree?
> In this project, we have tried one implementation. There might be
> better ones, but
> it is at least a first reasonable try.
> 
> In our representation of files, each line is given a unique identity.
> Let's imagine for
> a moment that two people replace the same part of a file with another. It
> means that some portion of the file was removed twice. Therefore, there
> will be a "minus one"
> zone in that portion of the file that indicate the problem. (This is
> very similar to two
> people withdrawing the same money concurrently on the bank account.)
> 
After reading the paper, what bother me the most is what happens in the case
of lines added to non-existing files (in the external representation).
Using darcs commands, what does bob see in his working dir at the end of
the following sequence?

Alice: focal init
Alice: touch toto; focal add toto; focal record -am 1
Alice: echo bla > toto ; focal record -am 2
Bob: focal init; focal pull --patch 2

Florent



More information about the darcs-users mailing list