Software Version Control Systems (VCSs) are used to store the versions of program source code created throughout the software development cycle. The traditional purpose of such systems has been mostly administrative, providing the safe storage of source code and the ability to recreate earlier versions, as well as tracking the progress of new feature development and problem resolution. Software developers often regard the VCS as a necessary but unpleasant encumbrance to the software design and coding process. However, when the change history data gathered by the VCS is easily available to the programmer in the context of an editor, the programming process is enhanced. Faults introduced by earlier changes can be more rapidly located, dependencies on other changes can be avoided, and the version history provides valuable hindsight that can help to guide future development.
David L. Atkins