Solved

Version Control

Posted on 1998-06-04
10
259 Views
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,
SC
0
Comment
Question by:Softchoice
10 Comments
 
LVL 51

Expert Comment

by:ahoffmann
ID: 2007346
SCCS on all UNIXs (currently ported to Linux).
CVS
ClearCase  (http://www.clearcase.com)
0
 

Author Comment

by:Softchoice
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!
0
 
LVL 51

Expert Comment

by:ahoffmann
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.
0
 

Expert Comment

by:airborne
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.
0
 
LVL 51

Expert Comment

by:ahoffmann
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 :-((

0
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 3

Accepted Solution

by:
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.
0
 
LVL 51

Expert Comment

by:ahoffmann
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?
0
 
LVL 3

Expert Comment

by:braveheart
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.

0
 
LVL 51

Expert Comment

by:ahoffmann
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 ...
0
 
LVL 3

Expert Comment

by:braveheart
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.
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Using libpcap/Jpcap to capture and send packets on Solaris version (10/11) Library used: 1.      Libpcap (http://www.tcpdump.org) Version 1.2 2.      Jpcap(http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/index.html) Version 0.6 Prerequisite: 1.      GCC …
Why Shell Scripting? Shell scripting is a powerful method of accessing UNIX systems and it is very flexible. Shell scripts are required when we want to execute a sequence of commands in Unix flavored operating systems. “Shell” is the command line i…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
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.:

762 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now