Free Software Resources

Revision Control

What is revision control?

A software system will undergo many changes in its lifetime. Any system that is never changed is probably also never used!

Revision control can be viewed as change managment. It allows the developer a degree of control over what changes are made to the system, and allows them to find information about previous changes to the system.

With a revision control system, you can find the answers to questions about changes. This may seem a little boring at first, but consider the following situations.

In all these situations, a revision control tool would really help us do the job with minimum fuss.

Which revision control tool?

I'd suggest using the free software tool "CVS" (Concurrent Versions System). CVS works by keeping a single copy of all your source code (and data files, test cases -- anything you want, really) along with enough information to re-create any version that you have told CVS to keep. Essentially CVS creates a database of the change history of your code.

CVS is built on top of the older revision control system "RCS" (Revision Control System). RCS is good for keeping a few files under revision control in a single directory, but CVS is much better at handling many files and multiple directories. CVS still isn't perfect, but it's a very useful tool.

CVS lets every developer create a workspace where they can do anything they want to. You can the work on the changes in that workspace in isolation from other changes. When you feel ready, you can update the source in your own workspace to integrate any changes that may have happened while you were isolated. When the changes in your workspace are complete, you can add them to the database. If you don't like them, you can just delete them. At any time, you can ask CVS to tell you what changes you have made.

If you're working on two different changes at once, you can put each of them in a different workspace. If you're adding a new feature, and a bug needs to be fixed, it's easy to just create a new workspace just to fix the bug.

It will let developers work on some changes in this workspace, update the source in the workspace with any changes other people have made in the meantime, and even create workspaces with older versions of the code.

The ability to create older versions means that you can apply other people's patches to the correct version, then update your workspace to the current version, letting CVS do most of the work for integrating changes (CVS will merge changes together - most of the time it is completely automatic).

You can also set CVS up as a client/server system over the Internet (or any TCP/IP network), allowing known users to upload and download changes directly, or even allow anonymous CVS access so anyone can download completely up-to-date source.


Free Lyrics DB A- Agathocles B- Beck C- SIMON D- Dave E- Earth F- Fat Joe J- Jay H- Hank Snow I- Iron Maiden G- Garth K- Lang L- Laibach M- Magnum N- Nat Cole King O- Orbison Roy P- Paul Q- Queers R- Ratata S- Santana T- Testament U- UB40 V- Van Morrison W- Weezer X- Xzibit Y- Yup Z- Zucchero