Skip to main content

Version Control


 In software engineeringversion control is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of information. Version control is a component of software configuration management.  [Wikipedia]

Other names       –       Revision control , Source control , Source code management

Version Control Systems 

They are software tools that help software teams manage changes to source code over time.

Version control software is an essential part of the every-day of the modern software team's professional practices.

Using version control systems, several developers, designers, and team members will work on the same project. These systems, also known as version control systems or VCS, ensure that everybody has access to the most current code.

Why Version Control system is so Important?     


Groups of software developers are actively writing new code and upgrading existing code. The code for a project, an app, or a software component is typically organized in a folder structure. A team member may be working on a new feature while another is updating code, and each developer's changes may be made in stages.

Changes made to one part of the program which conflict with changes made by another developer working on the same project at the same time. Version control helps teams in resolving issues like these by keeping track of and contributor's individual changes.

Developers may go back in time and compare earlier versions of the code if they make a mistake.

Types of Version Control Systems: 

Local Version Control Systems

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.

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

Distributed Version Control Systems

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.
Example: Git

Benefits of version control systems

  • Helps teams collaborate around the world.
  • Accelerates product delivery.
  • Improves visibility
  • Generate backups
  • Test and experiment
  • Keep history and track changes
  • Collaborate and contribute


Top Version Control Systems


  • GitHub                                       
  • Microsoft Team Foundation Server
  • GitLab
  • Beanstalk
  • PerForce
  • Mercurial
  • Bitbucket
  • CVS Version Control (Concurrent Versions System).
  • Apache Subversion
  • AWS CodeCommit
  



References
https://www.atlassian.com/git/tutorials/what-is-version-control
https://blog.eduonix.com/software-development/learn-three-types-version-control-systems/



 


Comments

Popular posts from this blog

Rest API

 What is REST? REST, or Representational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other. REST-compliant systems, often called Restful systems, are characterized by how they are stateless and separate the concerns of client and server. (Wikipedia) Restful Web Services  is a lightweight, maintainable, and scalable service that is built on the REST architecture. Restful Web Service, expose API from your application in a secure, uniform, stateless manner to the calling client. The calling client can perform predefined operations using the Restful service. The underlying protocol for REST is HTTP. REST stands for Representational State Transfer Difference between REST API s and Database People think REST API are Databases. My main purpose is to solve the conflict between this REST API and databases because when REST API are used by the developers , they treat REST A...

MongoDB vs MySQL

  MongoDB and MySQL are two databases that are used by developers when implementing various enterprise applications. Let's compare and contrast these two databases according to the following topics What is MongoDB and MySQL? Differences Why Use ? Disadvantages When to Use? What is MongoDB and MySQL? MongoDB MySQL MongoDB is an open-source database developed by MongoDB, Inc. MongoDB stores data in JSON-like documents that can vary in structure. It is a popular NoSQL database. MySQL is a popular open-source database developed, distributed and supported by Oracle Corporation. It    relational database management system (RDBMS) that is developed, distributed and supported by Oracle Corporation Differences NoSQL vs SQL NoSQL databse              SQL database No need predefined structure Need predefined structure   Non-Relational Database Relational Database Data as of JSON documents Represents data table and...