SCM is one of the most important tools you probably didn't learn
in school. Software (or source) control, as the name implies, is
a tool and an associated process that is used to maintain source
code and its evolution over time. SCM provides these primary
capabilities: - Maintains files in a repository - Maintains
revisions of files in a repository - Detects source change
conflicts and provides merging for multi-developer environments
- Tracks originators of changes - Provides configuration
management of files (relation of revisions) for consistent and
repeatable builds So, an SCM allows you to control a set of
files in a repository and track revisions of those files. When
changes are made to files in the repository by a different
developer, the SCM can identify conflicts from your changes and
either automatically merge them or notify you of the conflict.
This is an important capability because it permits multiple
developers to modify the same set of files. An SCM also provides
accountability in tracking who