[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