What's the difference between VCS and SCM?
Solution 1:
Caution, SCM can refer to different meanings about Versioning:
- Software Configuration Management as explained in JimDaniel's answer
- Source Control Management is same as Version Control and Source Control and VCS
Moreover, people may use SCM to refer to other naming:
- Source Code Management as in Source Code Control System
- Software Code Management but this is a deformation of Software Configuration Management
- Source Configuration Management same meaning as Software Configuration Management but maybe more focused on source code than on the whole software (settings, command line arguments, host parameters...)
Let's define them:
- Version Control Systems are the standalone software to manage the versions (Git...)
- Source Control Management is the same as VCS
- Software Configuration Management is all processes to manage all the changes of the software: the development (VCS), the delivery release (VCS), the bug tracking, the software settings, the host/network settings, the version/settings of the other software interacting with...
Therefore, just using the acronym SCM is confusing: some people may understand the same meaning as VCS, some others may understand the whole process where VCS is just an aspect.
Solution 2:
Version Control Systems are just that, software that provides versioning functionality (Git, Subversion, TFS Version Control) all fall into this category.
Software Configuration Management is a broader term that encompasses all the processes needed to build, package, and deploy software -- this includes Version Control Systems. It does not refer to software per se.