Monticello 2 question (sort of)
Colin Putney
cputney at wiresong.ca
Sat Apr 28 06:22:21 UTC 2007
On Apr 27, 2007, at 12:24 PM, J J wrote:
> So, I guess this was a dumb question?
>
> I am curious because I was considering testing some code myself to
> make a current generation change management system based on the
> change set mechanism that Squeak already has. But if Monticello 2
> is already going to do this then I'll just wait and focus on other
> things.
No, not a dumb question, just one that's difficult to answer.
Yes, darcs is interesting. Monticello2 came out of some discussions
that Avi and I had about the darcs versioning model. But Monticello2
uses a different model than darcs. In darcs, changes are grouped
together, and the dependencies between them are recorded so that when
a change is applied, all the changes it depends on can be applied as
well. In Monticello2, on the other hand, this history of each change
is recorded individually, so that they can be grouped and regrouped
arbitrarily.
The darcs model of recording dependencies is powerful, in that it can
give you better "coherence" when applying changes - if you make a lot
of small, inter-related changes to different parts of the code base,
darcs knows that they are related and keeps them together. This can
help avoid, for example, DNU errors because a merge applied a message
send, but not the method that implements it.
On the other hand, Monticello takes advantage of something that darcs
can't. Darcs has to deal with arbitrary text, while Monticello
operates at a higher level of abstraction - classes, methods,
variables etc. As a result, Monticello is able to decouple changes
from each other without introducing syntax errors. The end result is
that code versioned in Monticello can be organized in a variety of
ways - packages, change sets, or something else that we haven't
thought of yet.
So if you're interested in doing a darcs-like versioning system for
Squeak, don't let the (non) existence of Monticello2 stop you.
Colin
More information about the Squeak-dev
mailing list
|