Squeak, source control, subversion, versioning, monticello, all that good stuff.

Cees De Groot cdegroot at gmail.com
Sat Jan 28 08:02:25 UTC 2006


On 1/28/06, Diego Fernandez <diegof79 at gmail.com> wrote:
>  I use ENVY to work every day.

Me too :-).

>  1. The lack of a reified concept of "application".

Yup, you're right there. I think we should help stamp out and
eradicate all and every non-reified thingy in Squeak.

But note that Monticello can handle arbitrary bits of code in a
package - the PackageInfo thing is just a convention. And there's no
UI for arbitrary stuff in a MC package but that's probably because
we're all so la^H^Hbusy.

Mentioning applications - ever tried to refactor your code? Like
moving classes between applications? I'm a bit of an ENVY/VAST n00b,
but I haven't found out yet how to accomplish that magical feat. The
menu entry is there, but it always pops up an error to the extent "bad
bad developer. You can NOT do that!".

Oh, and you mentioned "home brewn tool for merging". ENVY/Manager
merging support. 'nuff said about the topic.

>  2. Is there a way to do something similar to "configuration maps" in MC?
> (or Bundles is VW)
>
Yes - rudimentary form but surprisingly usable, MonticelloConfigurations.

>  3. In ENVY each time that I save a method a version of it is created on the
> repository. In MC I can revert the changes on a method but I didn't found a
> similar functionality.
>
In Squeak (and VW) these changes are kept in the .changes file.
However, if you hunt for 'Anvil', I once did a proof-of-concept that
logged every change in a Magma database.

Oh, and I don't like this feature too much. For starters, I had to
clone the whole library to my laptop (quarter of a gig) in order to be
able to work off-site. Of course, Envy says "I know what is best for
you, so I will only clone released editions, you dumb dumb developer".
Which is a sort of a bummer if the team's idea of using Envy is only
to release apps when an app release is imminent.

>  4. The "Make image consistent" is really useful when you have an image
> crash

Yes. Ok. That's good about VAST/Envy - that stuff and atomic loads.

But all in all, Envy has for me the wrong feature set. It doesn't do
the very basics of versioning (merging support is all but absent, you
can't comment editions, stuff like that) and tries very hard to impose
some sort of obsolete development model on you, with individual code
ownership and favoring locking over merging (it seems. I'm not sure,
but it smells that way). And refactoring your code, especially on the
class level (moving classes between apps, renaming classes) seems to
involve dark magic in VAST/Envy, and a tool that sits between me and
well-factored code sucks.

Whereas MC does do the very basics of versioning, and let people
decide all by themselves how they want to go about the process on top
of it. Which, I think, is the right way to attack this sort of stuff.



More information about the Squeak-dev mailing list