A bunch of observations

Avi Bryant avi.bryant at gmail.com
Wed Mar 2 12:29:41 UTC 2005


On Wed, 2 Mar 2005 12:37:24 +0100, goran.krampe at bluefish.se
<goran.krampe at bluefish.se> wrote:

> 3. Colin and the others are working hard on MC2 etc and I just want to
> give a hint on something extraordinarily cool in that arena. Darcs
> (http://www.darcs.net). Darcs is a new distributed version control tool
> that has something that AFAIK no other tool has - a "Theory of Patches".
> The net result is remarkable smartness, bordering on magic. :) 

Darcs was, in a way, a major inspiration for the design of MC2 - as
you may remember, I was looking into darcs around the same time that
you were a few months ago.  After studying it, the conclusion I came
to was that the "theory of patches" is actually unnecessary in a
Smalltalk context: its purpose is to figure out the dependency between
versions of an individual piece of a file, given the dependency
between versions of the file as a whole.  Monticello has roughly the
same problem, so it was familiar to me, but MC also suggests a simpler
solution: since we already keep track of the individual pieces
(methods), we can just record their dependencies directly, and the
whole inference mechanism behind darcs can be thrown away.  All you
need is method-granularity versioning (as in ENVY), combined with
knowledge of multiple ancestors (as in Monticello), and you get the
same effect as Darcs, but more reliably.  That's the basis of MC2.

In terms of file-based versioning systems, the design ends up being
closer to Codeville (http://codeville.org) - I wonder if Bram looked
at Darcs too and came to the same conclusions.

Avi



More information about the Modules mailing list