Wednesday, June 9, 2010

Types of Revision Control Software

Revision Control software are used for implement Revision Control on single or multiple sites by organizations. Revision Control, also known as Software Configuration Management (SCM) or Source Control or Version Control, is the management or control of changes to programs, documents and other sorts of information data. This type of setup or mechanism is more often used in software development where a set of people may alter the contents of the same file. The changes made are generally identified by a letter code or number which is called as a revision number or simply revision. For instance, an initial revision for a file is "revision 1". If this file is altered by any developer, its revision becomes "revision 2", and so on. A developer can perform many operations on these revisions. These revisions of files or directories can be merged, restored or compared. Software tools for revision management are crucial for the organization where development is simultaneously in progress on multi-developer sites.

Types of Revision Control Software
The various possible approaches for revision control software are:

Local Only: In this approach, it is necessary for all the developers to use the same computer system. Examples:

a. Revision Control System (RCS)
b. Source Code Control System (SCCS)

Distributed Model: In this approach, each of the developer has his/her own setup or local repository. And at some predefined time, all of the changes from various developers are shared or synced between repositories as a different step. Examples:
Open Source:
i. Aegis
ii. Codeville
iii. DCVS
iv. GIT
Proprietary:
i. Sun WorkShop Team Ware
ii. BitKeeper

Client-Server Model: In this approach, all the developers have to share a single repository. Examples:
Open Source:
i. Concurrent Versions System (CVS)
ii. CVSNT
iii. OpenCVS
Proprietary:
i. Perforce
ii. Clearcase
iii. Visual SourceSafe

Example of revision control software are as below...

GIT

This distributed revision control system has an emphasis on speed. It was originally designed and developed by Linus Torvalds for the development of Linux kernel. Every working directory of Git is a full-fledged repository with full revision tracking capabilities and complete history, not dependent on a central server or network access. GIT is a free software which is distributed under the terms of version 2 of the GNU General Public License.

Perforce

This is a proprietary and commercial revision control system developed by Perforce Software Inc. Perforce follows a client/server system. Here the server has the responsibility of managing a central database and a main repository of file versions. Developers can work on files in their local client workspace. After altering the changes, they can submit the changes to the main server. Client and server communicate via TCP/IP.

Clearcase

Rational ClearCase is a tool for configuration management of source code and other software assets. This tool is developed by IBM (Rational Software Division). ClearCase is the basis of version control for many mid size businesses, and has the potential to handle projects with thousands of developers.

CVS

This is a free revision control system. This system was developed by Dick Grune as a series of shell scripts during July 1986. CVS turned out to be popular in the open source software space and is released under General Public License of GNU. CVS also uses Client/Server architecture. Here, the clients connect to the server and can "check out" a version of file onto their local disk. Later after modifying the contents, they can "check in" the changes.

No comments:

Post a Comment