sourcecode-management
Julian Fitzell
julian at beta4.com
Tue Aug 23 23:17:57 UTC 2005
Victor Rodriguez wrote:
> What about just filing out classes to individual files and checking
> those into SVN?
The major problem with this approach is that you need to add and remove
files from CVS or SVN when you add or remove classes. It also doesn't
handle the case of method overrides on other classes, which Monticello
handles seamlessly for you (as long as you put the methods in a properly
named category). Also, as you point out, filing in all the classes over
and over even though they haven't changed can be slow in a large project.
> A disclaimer: I just started playing with Smalltalk and Squeak and
> know very little of change sets, and nothing about Monticello.
>
> To keep my own code in CVS I have been thinking about writing a little
> tool to file out all the classes in the category I'm using for them
> (I'm assuming this is possible). Then I would use my CVS client
> (XEmacs) to check-in the modified files.
The tool you are describing sounds basically like the original
Monticello, now called MonticelloCVS. The only real difference being
that we decided, for various reasons after months of trying different
approaches, to use one file per package instead of one per class. We
also determined an best-possible ordering of code to minimize cvs
"conflicts" by reducing the amount of code reordering going on when you
add methods, etc.
The original monticello worked great except that it suffered from the
same problems that CVS always does: it doesn't have any syntactic
understanding of the code or the changes, so "conflicts" can begin to
run rampant because of your merging patterns or because people are
working in physically-proximate but unrelated locations in the source code.
The new Monticello (and the newer one in development) addresses these
issues by storing version history and adding an understanding of what a
method is, what a comment is, what a timestamp is, etc. It provides
branching, merging, conflict resolution, multiple repositories, etc. all
quite simply from within the image.
If you can just use Monticello, I would highly recommend it. If for
some reason, you need to use CVS (hey, we've all worked in places like
this :) ) then I would definitely suggest seeing if you can use or tweak
MonticelloCVS to your needs rather than reinventing that wheel.
Julian
--
Julian Fitzell -- Beta4 Productions
julian at beta4.com -- http://www.beta4.com
Seaside: http://seaside.st/
More information about the Squeak-dev
mailing list
|