Desert Crystal Solutions


Subversion (CVS) Quick Setup Howto

Wednesday, 21 September 2005 01:11

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.

Install Subversion Server

This install is running off my home system, and I'm using APT to install the Server Package.

For more information about APT, please visit this website.

If and when you have your Linux/UNIX system up, and you've installed APT (whether it has come with your distro or not) run this command.
apt-get install subversion mod_dav_svn svnmailer -y
This will install the Subversion Server, Apache Modules for remote access, and an additional E-mail notification component onto your system.

Create CVS Repository, Projects & Users

Next we'll set about creating the central CVS repository for our system.  I've chosen /home/cvs/.  Issue the below command.
mkdir -p /home/cvs
svnadmin create /home/cvs/terst
chown apache.apache /home/cvs -R
All projects through Subversion will now be automatically placed under the directory /home/cvs/.
Now, lets configure Apache to acept requests to the newly created repository. To do this, I've just added the following lines to the end of /etc/httpd/conf.d/subversion.conf.
<Location /repos>
DAV svn
SVNParentPath /home/cvs