Getting To Know About Version Control

Shehani Fernando
4 min readMar 2, 2021

--

The importance of version control systems for tracking changes cannot be overstated, and companies should choose the one that best suits their needs.

Version control, also known as source control or source code manager, is the practice of tracking and managing alternations to software code. Version control software keeps a track of every modification to the code in a special kind of database.

Types of Version Control:

  1. Local Version Control System
  2. Centralized Version Control System
  3. Distributed Version Control System

01. Local Version Control System

  • It maintains a track of files within the local system.
  • This approach is very common, straight forward and simple.
  • This type is also error prone, which means there is a greater risk of mistakenly been written into the wrong files

02. Centralized Version Control System

  • All changes to the files are tracked under a centralized server.
  • The centralized server includes all the versioned file information, as well as a list of clients who check out data from that central location.

Ex:- Tortoise SVN

03. Distributed Version Control System

  • They overcome the drawback of centralized version control system.
  • The clients clone the repository including its full history entirely. Incase if any server crashes, all the client repositories can be copied to the server, allowing the server to be restored(Every clone will be considered as a full backup of all the data).

Ex:- Git

Benefits of Version Control:

  • Easy collaborative development
  • Access control and conflict resolvement
  • Traceability for every change ever made
  • A single source of truth across teams, code, and assets
  • Easier backups and centralized source code repository
  • For the development teams who don’t want to waste time in searching for files, high speed can be an importance
  • It allows to compare files, identify the differences and to merge changes if required prior to committing any code
  • Keeps a track of application builds by allowing to identify which version is currently been developed, in QA and production
  • When troubleshooting is an issue, you can easily compare different versions of files to track the variations

Best Version Control Systems:

  1. Github
  2. Gitlab
  3. Beanstalk
  4. PerForce
  5. Apache Subversion
  6. AWS CodeCommit
  7. Microsoft Team Foundation Server
  8. Mercurial
  9. CVS Version Control
  10. Bitbucket

5 Factors to Look For In Version Control Systems:

  1. Concurrent Development
  2. Automation
  3. Team Collaboration
  4. Tracked Alternations — who, what, when, why?
  5. High Availability

Terminology:

  1. Branch — At a particular point, a copy of the master branch is taken. All the feature developments and the bug fixes will be done in a branch. Multiple branches are typically authorized at the same time
  2. Checkout — Mark/unlock file for changing
  3. Commit — Create a snapshot of the changes being made to the files
  4. Merge Conflict —It occurs when merging a file which has been changed in two separate branches/locations
  5. Merge — Combining branches together to update the master branch
  6. Repository — Central location where all the files are being kept. It is usually a directory with a set of files
  7. Stage — Mark files for tracking changes
  8. Trunk — Also referred to as “master branch.” This is where the most stable code is being placed which is referred as the production code

Git Version Control

Git version control is open source. It’s a free distributed version control system. In fact, Git version control is one of the most popular options. It’s open source, so anyone can use it.

Git is the most popular version control system for most of the development projects and it can be either be used directly on a computer or be connected online through github.com.

Benefits:-

  • Faster to commit
  • It’s available offline
  • Free and Open-source
  • Branching capabilities
  • Cheap and easy to merge
  • No more single point of failure
  • Data redundancy and replications

Drawbacks:-

  • Lacks Security
  • Impossible to Scale
  • Poor GUI and usability
  • Lacks window support
  • No built-in access control
  • Requires technical excellence
  • Difficulties in getting a single source of truth

Basic Commands of Git:

  • Git Add
  • Git Clone
  • Git Commit
  • Git Init
  • Git Pull
  • Git Push
  • Git Stage

Softwares should have a rudimental understanding of what a Version Control System(VCS) is and which type of VCS best suits them. The adoption of a VCS is a must in software development. It makes it easier for the Software developers to handke their codes, because it is common to have a lot of alternations involving addition or deletion features.

In order to use a VCS, a software developer must first decide the approach which should be used, since this would have an effect on the whole project and team. It’s also vital for them to consider the various VCS methods because each one will have a different effect on their Software development process.

--

--