> Both CVS and RCS are available for download from the GNU software
> project at www.gnu.org
> I prefer RCS over SCCS because of the way it stores changes. SCCS
> kept the very first version of the file along with a list of all the
> changes required to get the latest version.
That is not a completely accurate characterization of the way SCCS
stores its information. Specifically, SCCS does not have the
differences between versions in a separate section of the file as RCS
does; it keeps the delta information (actual file changes) distributed
throughout the file.
Quote:> RCS saves the latest
> version and keeps a list of the changes to get to the previous
> version(s). This means that SCCS can be quite slow when checking out
> a file with lots of revisions, while RCS simply copies it out to the
> working file.
SCCS will always make a complete pass over the SCCS s-file; RCS does not
always have to read the whole of the RCS v-file, so there is some chance
that RCS will be quicker. On the other hand, if you are collecting an
old version from RCS, there will be a sequence of diffs to apply; SCCS
stores the information such that it pulls exactly the required material
in the first pass. I've never had problems with the speed of 'sccs
get', but nor have I had speed problems with the speed of 'co', despite
having worked on projects with contorted version histories and routine
scrutiny of ancient as well as modern versions of files. So I tend to
regard this whole speed issue as something of a red herring.
Quote:> I haven't used CVS here, so I can't comment on it. I do know that
> there are a variety of tools available for use with it, such as web
> browser interfaces.
CVS is widely used by Open Source projects; they can't all be wrong.
There's a replacement for CVS under development -- see
http://subversion.tigris.org/ -- which looks extremely interesting.
Personally, I prefer the SCCS system of keeping records of checkouts in
a separate file from the master source code; if the checkout is
subsequently cancelled, the s-file is not modified. I dislike the
change in modification time of the v-file that results from making a
checkout under RCS, and doubly so when the checkout is cancelled. That
is partly because I also prefer strict locking, which is the antithesis
of what CVS uses. I also prefer the SCCS keyword system, but both that
and the RCS/CVS equivalent systems have their problems.
But you have to choose what will work for you, and any of the systems
mentioned with the probable exception of Visual Source Safe will work
with Informix 4GL -- VSS is not a good choice because I4GL is not
available for Win32 platforms except in the guise of D4GL, aka 4J's --
http://www.4js.com/.
However, as someone pointed out, if you use SCCS, ensure it is a
Y2K-compliant version of SCCS. If you use an old version, you will
corrupt your s-files with punctuation characters where you should see
digits.
And, just for reference, most of my own code (as opposed to corporate
code) is under RCS because that is available on Linux (and CSSC, the GNU
variant of SCCS, is not wholly ready for production use), and because I
don't want to be stranded with a machine with a broken (non-Y2K safe)
version of SCCS. Even so, I still prefer SCCS.
--
Yours,
Guardian of DBD::Informix v1.00.PC1 -- http://www.perl.com/CPAN
"I don't suffer from insanity; I enjoy every minute of it!"