A programming discipline for tracking, storing and retrieving revisions of source code.

When using version control in a software project: each file belonging to the project is inventoried and stored in a repository, associating a version to each file. Whenever any of the files in the repository needs to be changed, it is recovered from the repository and delivered to the developer who will modify the file. When the developer has finished modifying the file, it is stored again in the repository, associating a new version to the file.