IMPORTANT

lrozier at thepattern.com lrozier at thepattern.com
Sun Jan 16 10:05:11 UTC 2000


---------- Forwarded ----------
Date: Sun, 16 Jan 2000 12:33:42 +0100
From: Stefan Matthias Aust <sma at 3plus4.de>
Subject: Re: Squeak and CM (was Re: Of source code lost in eternity)
To: squeak at cs.uiuc.edu

Hej,

[How to use CVS for Squeak: Make each method a file and each class a
directory and each project a CVS modul.]

>Yes, the file per class or file per method approach seems quite doable to me.
>The totally supersimple hack we could do is to build a "mirroring" mechanism
>to the filesystem of dirty classes. Then you could run the CVS client 
>outside Squeak.

I'm also in favor for making the use of CVS as easy and as similar as
possible to the old way to use for the user.  You cannot really hide it
because then there's no advantage in using CVS over the traditional change
set ;-)

Göran's idea sounds reasonable to me.  The "dirty" state should be already
tracked in the normal change sets.  So one probably only needs a way to
file out a change file in a different way.

- For a change set M, make sure that a folder "M" exists which will be 
  used as base for a CVS modul.

- For each new or modified class C, make sure that a folder "C" exists
  which will be used as container for all modified methods.

- For each deleted class C, delete a folder "C" is it exists.

- The "M" contains more classes as the change set knows of, delete the
  rest because they once belonged to that project but where probably 
  removed in the meantime.

- For each new or modified method "m" make a unique and valid file name
  m0 for that method.  Unary methods can be used as-is.  For keyword
  methods, replace ":" with "_".  For binary methods, we need a mapping
  to letters (>= -> greaterEqual) which will be prefixed with "_".
  Class methods will start with an uppercase "C"

- For each deleted method, remove the associated file.

- If "C" contains more files than the project has methods, remove them.

All files are in normal chunk-format.

Now, you should be able to commit the modified CVS module.  Reading in an
updated local CVS repository modul would be similar.  Reading in these
files should of course affect the project's change set to keep everything
in sync.

>When this works, the next step is to build either a CVS frontend client
>in Squeak OR a complete CVS client.

A CVS client would be a nice idea of course.  I think, the CVS
client/server protocol is based on TCP/IP and well documented, so it should
be possible to access CVS repositories all over the internet.

>> Why not use what is already available?
>
>Ah, you misunderstood me (I think) I definitely vote for a CVS solution!

Me too, I simply could resist to rant ;-)

>Yes, but a clarification might be in place here - I am more visualizing a 
>live "catalog" of developers which can inform/notify me about who is doing
>what and where. A bonus would of course be to be able to easily share code
>too!

So you think, something like this is really useful?  Sound like a
combination of some dicussion tool (say IRC), a messenger (say ICQ), a
repository (say CVS) and a whiteboard system (say Netmeeting) and a file
transfer utitly (say FTP client/server).  Only, that you want to use one
toolset which is well integrated, right?  I'm really interested in this topic!


>Oh yes, the tiny problem of available time... :-) I have exchanged a few
>emails with Jecel Assumpcao so perhaps we could rally up a few people and
>give it a stab. I think it really could benefit the whole Squeak community.

Sure.


bye
--
Stefan Matthias Aust  //  Bevor wir fallen, fallen wir lieber auf.
-------------------------------





More information about the Squeak-dev mailing list