[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