Control of the creation and usage of the various versions of a given entity. For a recognizable entity, e.g. a software component, there may be various reasons for developing several distinct versions of the entity. A later version may represent an improvement over an earlier one, in that certain errors have been corrected or new capabilities added, or it may employ an alternative approach to meeting the same requirements.
Version control promotes correct usage of the various versions, perhaps by restricting access to existing versions and creation of new versions. For example, the“current release” version of some software component may be protected against modification or deletion, while access to (or even knowledge of) a version under development may be limited to the development team.