Version Control System:
Version Control Systems are process management systems which maintain changes recorded in a file or set of files over period of time. Each change is maintained as a version. Users can track specific versions later. Version control systems are also called as revision control systems. Revision control systems work as independent standalone applications. Applications like spreadsheets and word processors have control mechanisms. The unique features of version control system/ revision control system are as follows:
Up to date history is available for the document and file types.
It does not require any other repository systems.
The repositories can be cloned as per the need and availability. This is extremely helpful in case of failure and accidental deletions.
VCS includes tag system which helps in differentiating between alpha, beta or various release versions for different documents.
For example, changes made in code base among developers include version control system for tracking changes with specific lines.
The various types of the version control systems are:
1. Local Version Control System
2. Centralized Version Control System
3. Distributed Version Control System
1. Local Version Control System:
Local version control system maintains track of files within the local system. This approach is very common and simple. This type is also error prone which means the chances of accidentally writing to the wrong file is higher.
2. Centralized Version Control Systems
In this approach, all the changes in the files are tracked under the centralized server. The centralized server includes all the information of versioned files, and list of clients that check out files from that central place.
Example: Tortoise SVN
3. Distributed Version Control System:
Distributed version control systems come into picture to overcome the drawback of centralized version control system. The clients completely clone the repository including its full history. If any server dies, any of the client repositories can be copied on to the server which help restore the server.
Every clone is considered as a full backup of all the data.
Popular Jargons Related To Version Control System:
Repository: It can be described as the heart of any version control system. Repository is the central defined place where all the developers or programmers work and store their code. Apart from storing files, repositories also maintain the history. In version control systems, repositories are accessed over a network which acts like a server and version control tool as a client. On establishing successful connection, clients store or retrieve their changes.
Trunk: Trunk can be defined as a directory where all the development takes place. All the check-outs are committed by the developers.
Tags: Tags help create snapshots of the project. The operations of creating tags allows to keep descriptive and memorable names to specific version in the repository.
For example, FINAL_STABLE_CMS_SUPPORT is more memorable than
Repository UUID: 5ccjdsg89n-9237-dhsg1-874ao-c2982719678 and
Branches of the repository are like branches of the tree. The operation of creating branches are used to create another like of development. It is proved beneficial when your development process forks in two directions.
Working copy: It is the snapshot of the repository where the developer is actively working on it. Each developer has their own working copy. The changes made in the working copy are merged together in the main repository. Working copy can be considered as a private workplace where developers maintain their work in systematic way which is isolated from the rest of the developers.
Commit changes: Committing code is the process of storing changes from working copy to the central server. After successful commit changes are made available to all the team members. Other developers can pull these changes which will update the working copy. Commit is an atomic operation which means either it is successful or rolled back. Developers can never see half-finished commit.
Check Out : – Git and GitHub Essentials Tutorial
Popular Version Control Systems:
SVN is the abbreviated form of “Apache Subversion” and is a popular version control system tool. It is a centralized version control system and is system distributed and collaborated with open source license.
The official website is as follows:
Git is the distributed version control system and has an emphasis on speed and performance. It is supported by all operating systems. Git is open source software distributed under the terms of the GNU (General Public License).
The official website is as follows:
Mercurial is free, open source distributed revision control system. It includes a unique set of features that makes it particularly a good choice as a revision control system which are as follows:
1. It is easy to learn and use
2. Lightweight software
3. It scales excellently
4. Mercurial is known for easy customization.
The interface of Mercurial and command prompt is easy to understand. The usefulness of Mercurial is not limited to some projects. Creating new changes and branches and merging changes to the main branch is main feature of mercurial. This subversion control is well suited to scripting tasks with languages like Python and PHP.
The official website of Mercurial: