[darcs-users] Why monotone and Codeville are cool
zooko at zooko.com
Mon Mar 21 19:27:20 UTC 2005
> I was less impressed by the way Monotone
> handles merging (sorry, I forget the details),
I think it is simply "do 3-merge of x, y and
I could be wrong.
> I tried to look at Codeville, but couldn't find any documentation that
> could give me an idea of the underlying data model. I didn't read the
> sources, as I'm not particularly proficient at reading Python. If you
> have pointers to documentation about Codeville's data structures to
> point me to, I'm interested.
Sadly, there aren't any docs (as far as I know).
The fundamental concept in Codeville is delicious:
For every line of code, keep track of all patches that have ever
touched this line of code. Now when merging, do the following for
every line of code to be merged:
If one of the two alternate versions of this line has been touched by
every patch that touched the other version of this line, then that one
is the result of the merge. Else, if neither has been touched by every
patch that touched the other, then it is a conflict. Obviously when
the conflict is resolved then you want to mark the new line as
effectively having been touched by every patch that touched either of
the conflicting originals.
Again, I could be wrong, but it is something like that.
More information about the darcs-users