Version Control Systems (VCS) provide the functionality to store textual information, manage changes and revisions, and to restore to a previous version if required. They are used in development for the management of source code changes in multi-person teams where they also track who made the changes and when. In DevOps scenarios, a VCS is often integrated into an automated build and deployment workflow to allow for continuous testing and deployment to UAT and Production systems. As more virtualization occurs for IT-based systems, the configuration files that define server builds, software-defined networks, and other scripts used in IT operations can also be stored in a VCS and changes tracked and restored as required.
In addition to their use in IT development and operations, VCS systems are now built into end-user applications and storage services so that personal files can benefit from version control and previous versions can be restored if required.
The most widely used VCS systems in use are Git, Microsoft Team Foundation Server, Mercurial, Subversion, SVN, and Perforce.