The original intended purpose of version control systems was to benefit software developers. A tool written by software developers to benefit software developers. The primary purpose being to help diffuse complications that arise from software projects of greater scope and with teams of expanding size. Therefore, software development is one of the primary beneficiaries of version control systems. However, there are other applications of version control.
The place of version control systems in computer systems, as was presented previously, allows them to be extended to a variety of purposes. This includes any software application or task that uses files.
Beyond computer programming, writers, authors and word processor users could use version control systems. Like software projects, authoring books and documentation projects can expand in size. Certain writing tasks can require maintaining versions of a piece. Writers often experiment and benefit from doing so in their work. Also maintaining editions of books is another common task of publishing that requires maintaining version information for files.
Another technically-inclined group of individuals besides software programmers, are system administrators. This is another group of individuals who, early on, found benefits for version control systems. One of the tasks they found a purpose for their systems was their backup file systems. Rather than having to maintain multiple separate volumes for nightly backups of their systems, version control systems could instead store backup versions of files in a single volume and provide recovery by pulling a desired backup version stored at a particular date. These backup systems proved to be some of the most rigorous tests of version control software, but were an important addition to backup systems.
As truly “paperless” electronic publishing system expands via the World Wide Web (web), the number of documents to maintain, and the constant modifications made to these documents grow enormously. Version control systems offer a tool for maintaing the chaos of web documents, scripts and applications. Most web servers offer their content by having access to selections of a file system. Therefore, web services that are file-based can be tied to version control systems.
Version control systems are also designed for compilation tasks. This is another consequence of version control systems being used initially by software programmers. In computer programming and in advanced publishing applications, source files are compiled into target files. For instance, computer program source code is compiled into binary executables. Document source files are converted into printer-ready files.
Version control systems, including RCS, can remove the source files for successfully compiled files. This feature is requested less frequently because storage space concerns are also infrequent. However, removing files in a working directory can remove files that have been rendered inconsequential by compilation.
Since version control systems were originally for software development, they lend themselves easily to file-based projects that are released intermittently and modified in the mean time. Much of the design was towards releasing specific versions of the files. But this can carry over to any computer task that requires releasing files to the world, but maintaining information about the version of each release.