Sunday, 21 March 2021

Version Control Systems in Software Engineering

 

Version Control Systems

Version control systems are a category of software tools that help a software team manage changes to source code over time. Version control software keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake.

·        Developing software without using version control is risky, like not having backups.

·        VCS are sometimes known as SCM (Source Code Management) tools or RCS (Revision Control System). One of the most popular VCS tools in use today is called Git. 

·        Git is a Distributed VCS, a category known as DVCS

·        Git is free and open source.

A repository: 

It can be thought as a database of changes. It contains all the edits and historical versions (snapshots) of the project.

Copy of Work (sometimes called as checkout): 

It is the personal copy of all the files in a project. You can edit to this copy, without affecting the work of others and you can finally commit your changes to a repository when you are done making your changes.

Types of Version Control Systems

The three most popular version control systems are broken down into two main categories, centralized and decentralized (also known as distributed).

Centralized Version Control

The main concept of a centralized system is that it works in a client and server relationship. The repository is located in one place and provides access to many clients. It’s very similar to FTP in where you have an FTP client which connects to an FTP server. All changes, users, commit and information must be sent and received from this central repository.

Centralized Version Control Systems: Centralized version control systems contain just one repository and each user gets their own working copy. You need to commit to reflecting your changes in the repository. It is possible for others to see your changes by updating.

Two things are required to make your changes visible to others which are:

·        You commit

·        They update






Example:

·        Vesta

·        Concurrent Versions System

·        Subversion


Distributed Version Control Systems: 

Distributed version control systems contain multiple repositories. Each user has their own repository and working copy. Just committing your changes will not give others access to your changes. This is because commit will reflect those changes in your local repository and you need to push them in order to make them visible on the central repository. Similarly, when you update, you do not get other’s changes unless you have first pulled those changes into your repository.

To make your changes visible to others, 4 things are required:

·        You commit

·        You push

·        They pull

·        They update 




Examples:

·        Git
·        Bazaar 
·        BitKeeper
·      Fossil 











No comments:

Post a Comment