[Seaside] [DVS] Future of DVS & team source management?

Colin Putney seaside@lists.squeakfoundation.org
Sun, 10 Nov 2002 20:06:48 -0800


Hi David,

I use DVS/CVS for developing my Seaside applications, so I'll take a 
stab at addressing this.

On Thursday, November 7, 2002, at 10:36  PM, David Farber wrote:

> Avi - Ok, so I installed CVS on my system, loaded SqueakMap and DVS 
> into my image and I'm ready to do some high-powered development backed 
> up by solid source code management.
>
> ...And then I notice that DVS files out packages into a /single/ 
> change set. Hmmmm. Well, that is certainly the simplest way to go 
> about things. And everything works.
>
> But, if I've only got one file, what do I need some big ol' source 
> control system like CVS for?

It's important to note that DVS does *not* file out packages as a 
ChangeSet. In fact, it creates a .st file similar to what you'd get if 
you filed out a class category. The chunks in the file only create new 
classes or methods. Also, DVS is careful to order the chunks 
consistently, so that you can perform line-based diffs on it - which 
makes storing DVS files in CVS practical. You just couldn't do that 
with a ChangeSet.

I'm a little confused as to why the number of files your code is stored 
in makes a difference as to why CVS is useful. Keeping a revision 
history for you packages is a good idea no matter how they are stored. 
Attaching a log message to each change is a still a good idea. CVS 
still lets you do concurrent development even if you only have one file.

> I must admit that I wasn't exactly sure what I expected. When I've 
> coded Smalltalk professionally in the past, I've always had Envy to 
> manage my code. Whenever I'm hacking Java or Perl I always make a 
> point of using CVS (as opposed to not using anything). Now that I 
> think about it, change sets do tend to be almost random blobs of 
> code--it seems like it would almost be like herding cats if you tried 
> to seriously do source code management on some random number of change 
> sets each containing some random chunk of code.

Yup, you can't do SCM with ChangeSets.

> I guess what makes the most sense to me is that the "right" way to 
> interface with a "traditional" source code management system like CVS 
> would be to do one change set per class. Since we are talking about 
> Smalltalk code here, I must admit that that feels like a wierd 
> conclusion to have reached--file-per-class: how C++/braindead is > that?!

If you're going to break packages into more than one file, I think 
file-per-method actually makes more sense. If you're managing the files 
manually, it's a too much of a pain, but there's no reason DVS can't do 
it.

> I really miss having a source code manager when I'm coding in Squeak. 
> Just this week I threw away a whole day's worth of work just because I 
> had no decent way to back out of a rathole I'd gone down. I think it 
> keeps from doing as much coding in Squeak as I might otherwise, too.

CVS and DVS would solve that problem for you.

-cwp