Concurrent Versioning System (CVS) for GetProof Products.

What is CVS?

CVS, or the Concurrent Versioning System, is a version control system. Version control systems are generally used as part of the software development cycle to track and co-ordinate source code changes among a team of developers.

For example, bugs sometimes creep in when software is modified, and you might not detect the bug until a long time after you make the modification. With CVS, you can easily retrieve old versions to see exactly which change caused the bug. This can sometimes be a big help.

You could of course save every version of every file you have ever created. This would however waste an enormous amount of disk space. CVS stores all the versions of a file in a single file in a clever way that only stores the differences between versions.

CVS also helps you if you are part of a group of people working on the same project. It is all too easy to overwrite each others' changes unless you are extremely careful. Some editors, like GNU Emacs, try to make sure that the same file is never modified by two people at the same time. Unfortunately, if someone is using another editor, that safeguard will not work. CVS solves this problem by insulating the different developers from each other. Every developer works in his own sandbox, and CVS merges the work when each developer is done.

Create a module to house your source code:

Find your source (this should be source that will constitute the first STABLE source. This MUST be code that works and is not being developed.

1. Right-click on the folder (i.e. c:\VisionPro) and select the option CVS->Make new module
2. In the “Repository folder:” section type /repository/Module Name (Module Name being the name of your application i.e. VisionPro)
3. Click “Ok”
4. Once that is done, click OK again. You have just set up the module on the server.
5. Now add the files in the module by right clicking you’re your local copy (i.e. c:\VisionPro) and selecting the CSV..Add contents option.
6. Click OK. NOTE: You may get an error here asking you to select the format. There will be a file highlighted and you must right click and select either ASCII or Binary for the method of updating the server.
7. Next right click on the local folder again (i.e. c:\VisionPro) and select commit. This will commit all files to the server.
8. Right click on the local folder again and select CSV->refresh folder status to see the icons change to the appropriate ones.
As you work on the files the overlay icons will change indicating that there are files that need to be updated to the repository. If you are the only one working on the code you can simply right click the file or folder and select CVS Commit. This will commit your changes to the server. If there are multiple developers working on the files then select CSV Update first to merge what has been checked in with your code. Test and then right click and select CSV Commit.

Glossary of Related Terms:

EDITION - Typicall describes the platform or technology with which the product was built (.NET, .JSP, .ASP, etc...)
RELEASED - Describes code that has been declared ready to deliver to customer.
BUILD - Each time code is compiled for delivery, the build number increments (independently of version numbers).
VERSION - A numeric indicator with three dot-separated numbers decribing revision history of a product.
DEV TREE -
STABLE TREE - Location
MAINTENANCE TREE -
MAKE NEW MODULE - Create a new module (project) in the CVS repository.
MERGE - Update one branch with changes from another branch.
LOCK -
ANNOTATE - When something suddenly stops working, it can be valuable to find out exactly who is to blame for the change. This is what 'CVS Annotate' is for.
BRANCH (a.k.a. FORK) - Create a branch (aka fork) for a separate line of development. DIFF - Compare a local file to a version in the CVS repository.
COMMIT - Update the CVS repository with your local changes.
CHECKIN - Place your code on the Source Control Server for use by others.
WATCHING and LOCKING - Track who is editing which files.
REMOVE - Remove a file from the current branch. The file will still be available when retrieving an older revision or tag.
ADD or ADD CONTENTS - Add local files and/or folders to the CVS repository.
TAG - Make a snapshot of a project at a given point in time for later retrieval.
CHECKOUT - Creates a local sandbox from a CVS repository.
UPDATE - Synchronizes a local sandbox with a CVS repository.
VERSION CONTROL SYSTEM - Version control systems are generally used as part of the software development cycle to track and co-ordinate source code changes among a team of developers.