Kaigai Blog living abroad in my twenties

【My Study Note】What is version control?

Infotech Web Developer

What is version control?


Version control is a system that records all changes and modifications to files for tracking purposes. The developers would also call it source control or source code management.

Primary Goal of Version Control

The primary goal of any version control system is to keep track of changes. It achieves this by allowing developers access to the entire change history with the ability to revert or roll back to a previous state or point in time. 

Benefits Associated with Version Control

  1. Revision History
  2. Identity
  3. Collaboration
  4. Automation
  5. Efficiency

Revision History

Revision history provides a record of all changes in a project. It provides developers with the ability to revert to a stable point in time in cases where code edits cause issues or bugs. The ability to roll back to a particular version or time allows teams to work faster and deliver code with more confidence.

Identity

All changes made are always recorded with the identity of the user that made them. Combining this feature with the revision history allows teams to see not only when the changes occurred, but also who made the changes. 

【Collaboration】
Teams can also analyze the editing, creation, and the deletion of files on the control system. As a software developer, you will often work with a team to achieve a common goal. This can be adding new features to an existing project or creating a brand-new service. In all cases, a version control system allows the team to submit their code confidently and keep track of any changes that need to be made. 

Peer Review

Another important aspect of a version control system is something called “peer review”. Developers working on a task create a peer review once the code is ready for inspection. The peer review aims to get other developers on your team to review the code and provide feedback where necessary.

DevOps (Development Operations)

DevOps is a set of practices, philosophies, and tools that increase an organization’s ability to deliver applications or services to a high quality and velocity. 

Version control is a vital tool in this process, and it is used not only to track all changes but also to aid in software quality releases and deployments. 

Agile Methodology

You as a developer will usually work on a project alongside many developers and team members with other skill sets. You and your team need to be efficient to make your project a success. You and your team may work using processes from the agile methodology. 

In an agile process, a team normally plan and execute two weeks of work to complete, which is called an iteration. Each iteration has a list of tasks to complete before the two weeks ends. These tasks, while complex in some cases, are aided by having version control in place.