Re: RCS vs SCCS?
Posted in 1996
Maybe comp.databases.informix isn't the best place to discuss this but... >From: Philip Walden <pwalden@rmy.emory.edu> >Date: 25 Mar 1996 14:17:31 GMT >X-Informix-List-Id: <news.22459> > >m.mejia@server1.codetel.net.do wrote: >>I would like to hear your opinions about the pros and cons between these two >>source code control systems. >> >>I'm considering to use one of these, but before I would like to know your >>experiences. > >I have used both RCS and SCCS. I favor RCS for probably not very clear >reasons. > > - Both RCS and SCCS store changes as incremental edits to and original. > SCCS stores changes from the original version. RCS stores the current > version and the edits back to the original. Thus RCS will always be faster > to retrieve the lastest versions. Does anyone have any measurements of the speed difference between SCCS and RCS? I've worked with some fairly complex SCCS files, and have never, ever found that retrieve performance was a significant factor. And do you know what happens to RCS performance when asked to retrieve the first version? With SCCS, the performance is essentially the same -- the time taken to scan the entire file. With RCS? I have always tended to regard this performance issue as a red herring set forth by RCS proponents (based on the original RCS documentation), but I've never seen it justified by measurements... > Also in the rare case that the diff edits to not apply correctly, at > least your current version is not mangled. I've never seen or heard of a case where SCCS runs into problems. I find it difficult to believe that RCS ever runs into problems with the differences either. Agreed: you can write a shell script that extracts the latest version of an RCS file, as shown, and the corresponding operation in SCCS doesn't bear thinking about: : "@(#)co.sh 1.2 90/11/14" # # Minimal version of CO -- only retrieves most recent version for file in `rcsfile $*` do case $file in -*) continue;; esac f=`basename $file ,v` echo $f sed -n \\ -e 's/@@/@/g' \\ -e '/^@$/N' \\ -e '/^@\\ntext/N' \\ -e '/^@\\ntext\\n@/,/^@\\n/{ s/^@\\ntext\\n@// /^@\\n$/q p }' \\ $file >$f done > - I believe RCS handles branch and merge better. It is possible to branch from a branch and retain more visible tracking information in RCS. > - RCS provides for symbolic stamps on versions. We use this feature > extensively to align the versions on thousands of files into one > release of a product. This feature is the one I'd deem most valuable in RCS and most seriously missing from SCCS. It is almost enough to make up for what I perceive as the major handicap of RCS -- that when you get a file out of RCS for editing with locking on the file, the RCS master file is modified to record the fact. In SCCS, the p-file is created and the s-file is unaltered. The RCS method means that unnecessary recompilations are done. Yours, Jonathan Leffler (johnl@informix.com) #include <disclaimer.h>