![]() |
|
Source Control with CVSWhat is CVS, and how does a versioning system work? CVS is a reliable open source tool that has been around for quite a while, and is used to manage a large majority of open source development projects. More information about CVS (including manuals and developer forums) can be found at http://www.cvshome.org/. This development method depends upon checking in
sections of code to a central library, so that anyone can work on the most
recent code at any time. This easily avoids collisions, makes recovery of old
versions easier, as well as enables programmers to take better risks, knowing
that all of their work is backed up.
CVS stores the differences made from one version of a file to the next, and will try to only update a working repository based upon the changes made to those changed lines. Therefore, if there is a drastic change to every line of the file, (such as the end of line marks changing for the platform) then each line will be marked as changed, and the system will need to store an entire unique copy. This is why binary files, such as images, audio, video, and class files are treated differently. CVS also allows for tagging a repository in a certain state or time. This enables a developer to roll-back to that steady, tested state if a current version is broken, and needs a quick fix. It can also allow you to track down and diagnose bugs that only occurred with a specific version and went away (weren't necessarily fixed) with subsequent versions. A real advantage to working with version control systems is the author and timestamp. I can peer through cvs logs to see who made a change, and when.
The tag below shows an example of how this file is being tracked with CVS: $Id: what-is.html,v 1.5 2005/01/13 15:34:42 willn Exp $ CVS - Concurrent Versioning System |