What is Subversion?
Subversion is a free/open-source version control system. That is, Subversion manages files and directories over time. A tree of files is placed into a central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. This allows you to recover older versions of your data, or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine”.
Subversion can access its repository across networks, which allows it to be used by people on different computers. At some level, the ability for various people to modify and manage the same set of data from their respective locations fosters collaboration. Progress can occur more quickly without a single conduit through which all modifications must occur. And because the work is versioned, you need not fear that quality is the trade-off for losing that conduit—if some incorrect change is made to the data, just undo that change.
Some version control systems are also software configuration management (SCM) systems. These systems are specifically tailored to manage trees of source code, and have many features that are specific to software development—such as natively understanding programming languages, or supplying tools for building software. Subversion, however, is not one of these systems. It is a general system that can be used to manage any collection of files. For you, those files might be source code—for others, anything from grocery shopping lists to digital video mixdowns and beyond.
Almost every Linux distribution comes with a standard subversion installed.
The repository is of two formats bdb (berkeley db database) and fsfs (fsfs database).
In our case we are using the FSFS database and the repository is created on /usr/local/subversion/repository
SVN has few methods to serve it’s users. Below are some examples:
In this case we are using the Apache method.
Apache should be running as an normal user, not nobody.
I won’t guide people how to install apache in this how to.
Below is a step by step instruction on how to compile subversion from the source code, and how to setup a repository using apache webserver.