Version Control

Posted on 1998-06-04
Last Modified: 2013-12-06
Hi Experts,

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

Typingly Challenged,
Question by:Softchoice
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 51

Expert Comment

ID: 2007346
SCCS on all UNIXs (currently ported to Linux).
ClearCase  (

Author Comment

ID: 2007347
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!
LVL 51

Expert Comment

ID: 2007348
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.
Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users


Expert Comment

ID: 2007349
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.
LVL 51

Expert Comment

ID: 2007350
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 :-((


Accepted Solution

braveheart earned 50 total points
ID: 2007351
The crucial difference between SCCS and RCS is performance. Which is best depends on how you use the product. RCS stores the most recent version and changes backward from that version to previous versions. SCCS stores the first version and changes forward to later versions. This means that RCS usually wins out, unless you have other versions branching off from the main trunk which you use frequently.

I regularly survey the market for source (and binary) version control systems but those which have anything like the flexibility of what I want cost megabucks. Everywhere that I have worked has ended up writing their own system based on RCS.

The only third party software that was flexible enough for my purposes was something call ADC (Aide-de-Camp).

Concerning binaries, there is little advantage in storing EXEs and OBJs in any version control system which makes use of differences - there is no space saving so you might as well rely on the ordinary file management system. You can always regenerate them so long as you keep the same version of the OS and compilers. I can see that you might want to save a bitmap or a sound file so long as you don't change the data that often.
LVL 51

Expert Comment

ID: 2007352
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?

Expert Comment

ID: 2007353
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.

LVL 51

Expert Comment

ID: 2007354
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 ...

Expert Comment

ID: 2007355
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.

Featured Post

[Live Webinar] The Cloud Skills Gap

As Cloud technologies come of age, business leaders grapple with the impact it has on their team's skills and the gap associated with the use of a cloud platform.

Join experts from 451 Research and Concerto Cloud Services on July 27th where we will examine fact and fiction.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This tech tip describes how to install the Solaris Operating System from a tape backup that was created using the Solaris flash archive utility. I have used this procedure on the Solaris 8 and 9 OS, and it shoudl also work well on the Solaris 10 rel…
I promised to write further about my project, and here I am.  First, I needed to setup the Primary Server.  You can read how in this article: Setup FreeBSD Server with full HDD encryption (…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Suggested Courses

617 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question