On 18-Jan-08, at 8:00 AM, itsme213 wrote:
> "Colin Putney" <
[hidden email]> 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
format.
Monticello2 is even more content-agnostic - versioning different
domains would be really easy.
Colin