Monticello 2 alpha release

Colin Putney cputney at wiresong.ca
Fri May 5 16:05:33 UTC 2006


On May 5, 2006, at 3:23 AM, goran at krampe.se wrote:

> Hi Colin!
>
> Colin Putney <cputney at wiresong.ca> wrote:
>> Hi folks,
>>
>> After all the interest at Monticello 2 at Smalltalk Solutions, I
>> figure it's time to get it out there for people to play with. It's
>
> Awesome news! :) You mention "versioned changesets" and "partial
> merges". One thing I love in darcs is the ability to only deal with
> patches (changesets) but with good dependency resolution and the  
> ability
> to cherry pick. Does MC2 give something similar?

Yes and no. The versioning models in MC2 and Darcs are quite  
different. Darcs organizes version history as a series of patches.  
It's dependency resolution capabilities allow it to figure out which  
patches are necessary to recreate the code in a particular version of  
your source tree. Like MC1, MC2 allows you to take snapshots of your  
code and recreate those snapshots in other images. However, MC2 keeps  
version history for each method (and class and variable) rather than  
for packages.

The upshot of all this is that cherry picking in MC2 is very, very  
easy. The merge tool is designed with the assumption that cherry  
picking is the normal case, and MC1-style complete merges are just  
special cases where you happen to apply all the changes.

On the other hand, the reference to "versioned changesets" wasn't  
meant in the sense of darcs patches. Since MC2 keeps version history  
for each method, it's not so tightly bound to packages the way MC1  
is. Let's imagine you want to make a change that cuts across a lot of  
packages. It's perfectly reasonable to open a change set, make your  
changes, and then have MC2 make a snapshot, with versioning history,  
of your change set. The snapshot will contain only the methods you  
touched during your work, so it's easy to send by email. You could  
send it to a bunch of package maintainers, and they could each cherry  
pick the changes that apply to their package, merging it into their  
work with full version history, even if they organize things by  
package rather than change set.

So, to sum it up, MC2 supports cherry picking, but dependency  
resolution in the darcs sense is a meaningless concept.

> And... what was the specific problem with the release registration?

Well, I filled in the form, and when I submitted, I just got the same  
blank form again. I checked the list of releases for the package, and  
it was still empty. I tried again a couple of times, using "save  
release" or "save as new release" but nothing worked.

Colin






More information about the Squeak-dev mailing list