SCM tracks the history of changes to a source code repository and helps resolve conflicts when merging updates from different contributors.
Reasons to use SCM:
* Collaboration: SCM tools prevent one user from overwriting the changes of another, allowing many developers to work on the same code without stepping on each other’s toes.
* History: SCM tools track the complete development history of the software, including the specific changes which have occurred between releases and who made them.
* Release notes generation: Given the tracking of each change, the SCM can generate notes for software releases, which capture all the modifications introduced in the new release.
* Documentation and test management: SCM tools can manage not just software source code, but also test suites and documentation.
* Change notifications: To keep interested members of the team informed when changes occur to the source code.