CSC/ECE 517 Fall 2011/ch1 1f sv
Comparing version - control systems from the programmer's stand point
Introduction : Version Control Systems
Version Control System (VCS) is a software that allows to manage changes of documents, programs, images and other information that is stored in form of computer files. Changes are usually identified by an incrementing number or letter code also known as revision number or revision.The simplest usage of versioning is - you can easily go back to the previous working version of your files, should you mess something up with the latest changes.Changes could range from fixing a typo in a text file up to a huge refactoring in a software project, spanning hundreds of files. Each change usually has name of the person introduced it, time of the change and an optional description message.
Types of Version Control Systems
The version control systems can be classified into three categories:
1. Local version Control
In the local-only approach, all developers must use the same computer system. These software often manage single files individually and are largely replaced or embedded within newer software.
Examples of this approach are:
Revision Control System (RCS) stores the latest version and backward deltas for fastest access to the trunk tip compared to SCCS and an improved user interface, at the cost of slow branch tip access and missing support for included/excluded deltas.
Source Code Control System (SCCS) is a part of UNIX and is based on interleaved deltas, and can construct versions as arbitrary sets of revisions. Extracting an arbitrary version takes essentially the same speed and is thus more useful in environments that rely heavily on branching and merging with multiple "current" and identical versions.
2. Client - Server Model
In the client-server model, developers use a shared single repository.
Open Source
Concurrent Versions System (CVS) was originally built on RCS and licensed under the GPL.
Subversion (svn) is a versioning control system inspired by CVS.