Version defines an unique state of a computer software or a file.

Versions and version control systems are widely used in the software industry to keep track of different versions of a piece of software.

The following processes and techniques are often used in computer software engineering to keep track of different versions:

Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software.

At a fine-grained level, revision control is often used for keeping track of incrementally different versions of electronic information, whether or not this information is actually computer software.

One of the forms of revision control is a versioning file system. Such a system is any computer file system which allows a computer file to exist in several versions at the same time.