SCM is the process of managing the source code of software application/s in a centralized, managed place known as Source code repository. It also plays a crucial role in coordinating parallel work on different features and the integration of the features for software releases.
Source Code Repository
Source code repository is a place where a developer on a team or a project store code and exchange with other developers on a regular basis. It also helps organizations to track the development of product features.
Source Code Repository Features
- Storing developers’ code in one location will safeguard the code.
- Developers in the team or project can work independently on separate branches with source code repository, and can eventually merge into one branch.
- Provide statistics and analytics to track changes in the code when something goes wrong and helps to revert the changes.
- Integrating source code repositories with build tools will simplify the flow of application deployments to the target environments.
- Version control in repositories of source code lets developers monitor their code changes and offers the ability to revert to previous versions if appropriate.
- Prepare and make the code available for production releases.
Types of code repository platforms
Centralized Version Control System
There is only one master copy (Central code repository) of the code in this method, and the developers checkout the changes to their local machines. Master copy only has the entire history of the file.
Each time developers commit their changes to the central repository, other developers are able to update their local machines with the same changes.
Some of the Tools which offer Centralized Version Control System
- Subversion
- Perforce
Distributed Version Control System
In this method every developer gets initiated with the local repository in their machines which will have all the work history stored in the central repository.First developers need to commit their code to the local repository and push it to the central repository afterwards.
In order to get other developers’ code changes, one needs to pull changes from the central repository.
Some of the Tools which offer Distributed Version Control System
- Git
- Mercurial