versioning

Avi Bryant avi at beta4.com
Fri May 10 18:30:36 UTC 2002


On Fri, 10 May 2002 goran.hultgren at bluefish.se wrote:

> Have you looked at http://sourceforge.net/projects/cvstproj/ ?

Yes, of course.  It has very similar goals to DVS (although I'm not
for the moment worrying about portability), but it takes a very different
approach.  On every update, cvstproj analyzes the entire codebase on disk,
and the entire changeset in the image, and produces a set of changes based
on that.  It thus has a very complicated patch creation process and a very
simple patch application process.  DVS, on the other hand, has a very
simple patch creation process (it lets CVS do the diffing), but a more
complex patch application process (since it has to analyze the diff file
to figure out what to do).  The two advantages of this are

- update time is proportional to the number of changes, not to the size of
the entire codebase.  With large modules, cvstproj is sloooow.  When I
was playing with it, I was getting update times of 10 to 20 seconds.

- if you're updating a remote image, you don't have to send it the entire
source code, just a diff.  I wrote a very simple CGI script that runs on
the CVS server and produces diff files; an image can update itself very
simply through this without even having CVS installed on the client.
Obviously you still need CVS to do commits.

There were a couple of less fundamental things about cvstproj that I
didn't like.  First of all, it requires you (in Squeak, anyway) to use
change sets to manage modules, which I find a bit cumbersome (I've been
keying off of patterns in category names instead, which is less flexible
but suits my needs better).  Secondly, it depends on SIF, which seems to
be incompletely implemented - for example, it wouldn't file in a
variably sized class.  This last item alone kept me from being able to
actually use cvstproj for anything real.  Now, I could have written what
amounted to a new port of cvstproj (different codec, different module
management), but I wasn't convinced I'd be any better off then than I am
now.

sqcvs may be useful, however.  What's the current status on that?  Your
last post to the cvstproj list made it sound like it wasn't quite ready
for prime time.

Cheers,
Avi




More information about the Squeak-dev mailing list