Link to home
Start Free TrialLog in
Avatar of Softchoice
Softchoice

asked on

Version Control

Hi Experts,

Any suggestions on good unix version control utilities (besides RCS). Are there any for X Windows?

Typingly Challenged,
SC
Avatar of ahoffmann
ahoffmann
Flag of Germany image

SCCS on all UNIXs (currently ported to Linux).
CVS
ClearCase  (http://www.clearcase.com)
Avatar of Softchoice
Softchoice

ASKER

Thanks ahoffman! I'll look into these. Why are they good? Which one is best?

PS: I'd like to grade your answer but then it won't be open to other experts. We should be able to do both!
SCCS is part of most (all?) UNIXs, but it's not freeware like RCS.

CVS is an extension to RCS. It adds something like "grouping of files to projects" to RCS. And, I'm not shure now, also has an GUI. It's free too.

ClearCase is a proprietary comercial product.

The advantage of SCCS, RCS, etc. is, that they use simple ASCII files (just some control codes), while ClearCase has its own file format.
There exist convertion scripts SCCS <-> RCS, and ClearCase can import RCS (not shure about SCCS).

Could not say what's best, this depends on what are you expecting to do: just putting files under version control, or managing "projects". I prefer SCCS, cause its fast and with a few simple scripts can be improved to do (nearly) everything you want. It is even available under Linux.

There is also a tool called PVCS (commercial, I think).

Let's see what other experts will say.
I think that a key point is that RCS and SCCS do not handle binary files. I too am looking for a source/binary control system for either Unix (AIX) or NT.
airborne, Sun's SCCS can handle binary files (see -b option on various SCCS commands). Unfortunately this was not ported to most other platforms (IRIX, HP-UX, AIX, ..).
Anyway, most implementations lack this feature :-((

ASKER CERTIFIED SOLUTION
Avatar of braveheart
braveheart

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
braveheart, I was shure that someone would add this performance advantage about RCS (did you take it from the RCS description?).
It will be true with the restrictions you desribed, but if you are frequently using several SIDs (not the most recent one), it is much slower than SCCS :-(
It's a few years ago when I did large tests about these things. They ended up in prefering SCCS because of the performance which was 2 to 5 times faster on files with a lot of deltas (for example the commands, diffs, sccsdiff), even I didn't check with branches (which would probably make it more slower).

Did somebody know if this performance bottleneck in RCS has been fixed meanwhile?
What ahoffman says is true. If you are regularly accessing non-trunk branches then SCCS is best. If you mainly use the trunk, use RCS. Typically we keep the most frequently accessed versions and the most recent three or four in read-only directories so that performance only becomes an issue when creating a new alternative of a non-trunk branch, or if we need to access some version which has to be retrieved from RCS directly, just as with any other caching mechanism.

I have just noticed the part of the question concerning X - well we don't have an X interface, per se, but we do have a CGI interface to our version control system so most of the manipulation is done using a net browser.

concerning X (don't know why programmers need such things ?-) ...
I've seen a CGI interface to SCCS/RCS on a server in australia to manage a project via internet, nice idea :-)
breaveheart, is you CGI working well, I'm interested too.

BTW, I've written a GUI in tcl/tk to be used as frontend to SCCS.
It's a very rudimentary one, but knows about most options for all commands. I'll continue to develop, if there is an interest ...
I think it's also not much to do to have it working as a web-plugin.
I'll continue to develop, if there is an interest ...
The CGI interface works well, guiding users to make appropriate comments in the forms. It also incorporates a system of getting Change and Freeze approval from designated Design Authorities before and after making changes. We are planning to incorporate a tick list of things to be checked before a module is frozen, more as an aide-memoire than as a rigid straitjacket.

Note that the CGI interface is well-distanced from RCS/SCCS because there is a thick layer of sandwich filling of our own in-house version control system sitting on top of RCS. Apart from using RCS just to control different versions of modules, some of the modules are used to manage the configuration, i.e. which module versions go with which versions of other modules. Such configuration modules consist almost entirely of dependency files.