Modern version control systems store changes to filesystem trees, preserving change history and allowing changes to be rolled back if required. They facilitate teamwork, allowing people to work in parallel on project documents, distributing and merging changes and helping to resolve change conflicts. With a version control system, multiple copies of files in different states become a thing of the past. If you want to know what a file was like at some point in the past you just ask the system.
Early version control systems like SCCS and RCS just manage files. CVS is aware of directories, but can't version them. Subversion, the successor to CVS, manages versioned filesystem trees, both files and directory structure. It has become the most popular version control system for open source project development.
Subversion command-line tools offer detailed help. For example, do
$ svn helpfor a list of svn command names, and
$ svn help commandfor help on a particular command.
For further information refer to the Subversion web site and the comprehensive ebook and the FAQ there.
This tutorial covers most Subversion features needed for normal use. It assumes you are running Linux, and uses short forms of common command names. In the command-line examples, commands you would type in a terminal are prefixed with $ following convention. Any command output follows, and is the actual output you should see if you replay the examples. It is captured by executing the commands when this document is generated from xml source.
This is work-in-progress. It doesn't yet deal with branching and merging, use of hook scripts, etc. Suggestions for additions and changes to John Storrs please.