TeamTool/Version-Management for Squeak?

Norton, Chris chrisn at Kronos.com
Fri Oct 22 14:52:50 UTC 1999


Hi Folks.

There's been lots of past and recent discussion on this subject, so I'll add
my 2-bits (again)...

I've been using VSE for several years and I really like the Team/V tools.
Not only do you have the option of sharing repositories on a network, but
you can also keep them locally -- which is how most of us solo-Squeakers
work today.  Team/V has a PVCS back end, but honestly, I don't even care
what source control system is bundled in there -- so long as it is invisible
to me and works flawlessly ;-).

The nice thing about VSE is that it has packages (which can own package
comments, classes, package initializers, pool variables, global variables
and loose methods from other classes) and clusters (which can own cluster
comments, other clusters and packages).  When you commit your source code to
a Team/V repository, the unit if storage is a version of the selected
package or cluster (of packages and other clusters).  The nice thing that
this mechanism provides, as opposed to saving only a change set, is a
complete definition of everything in the package or cluster.  Saving change
sets and revisions to those change sets is nice, but it is only a small
piece of the pie.  To ensure the integrity of your image, you need to save
all of the attributes of your selected classes.

I have recently done some experimenting with package-level file outs in
Squeak; this mechanism does provide a way to take a snapshot of the whole
definition of a class, but is not bullet proof.  For example:  I filed out a
package that had a couple classes I was working on.  I then changed the
classes in my image.  I moved one to another package, adding new test
methods and reclassifying some methods.  When I decided that my testing was
complete, I filed in the package change set, thinking that this would return
my image to the state it was in before, but I was wrong.  What happened is
that old definitions from the change set overlaid new definitions, but the
new methods that weren't in the change set... they were still there.  And
the class that I moved to a different package... it was updated from the
change set, but did not get put back into its old package.

In retrospect, I fully understand why my experiment failed, but I was
disappointed that I couldn't return my image to a specific state with a
change set.

My final 2 bits on this subject are:

1.  If one of you brave souls does implement version control in Squeak,
please choose a free source control system.  One of the best parts about
Squeak is the fact that we are not beholden to anyone.
2.  It would be great if the version control tool could handle source code
and any other binary object (morphs, bitmaps, etc.)

Cheers!

---==> Chris





More information about the Squeak-dev mailing list