DeltaStreams, Monticello

Colin Putney cputney at
Fri Jan 18 17:40:42 UTC 2008

On 18-Jan-08, at 8:00 AM, itsme213 wrote:

> "Colin Putney" <cputney at> wrote
>> Interesting. This is pretty much the way Monticello1 works.
> Is Monticello currently focused on classes & methods? Do you think
> Monticello could be readily adapted to deal with diff, merge, etc. on
> arbitrary object graphs? My application has a need for this, where  
> would I
> start?

Versioning arbitrary object graphs is difficult. I wouldn't recommend  
tackling that problem unless you really, really need to. On the other  
hand, most domains don't need that level of generality. Monticello  
does deal with classes and methods, but there's a fairly clean  
separation between the bits that know about the domain and the bits  
that handle the versioning. It wouldn't be too hard to extend it to  
deal with other sorts of objects. I've often thought it would be  
interesting to do create an MC-based tool for versioning relational  
databases, for example. If you want to deal with something else  
*instead* of classes and methods, that would be a bit more work, since  
for example, the mcz file format contains Smalltalk code in chunk  

Monticello2 is even more content-agnostic - versioning different  
domains would be really easy.


More information about the Squeak-dev mailing list