Installing Subversion binaries for Apache 2.2.x

Recently I went ahead and installed Apache 2.2.9 to my Windows Vista Ultimate machine. The purpose of doing that was to move towards a Subversion install running on Apache.

In this article, I'll be covering that installation.

Getting Subversion

Obviously, the first thing to do is to get Subversion.

We're looking for the Windows Apache 2.2.x binaries, in particular. At the time of this writing, that's svn-win32-1.5.1.zip.

In a previous guide, which you may have followed, I installed the Windows installer with the basic win32 binaries. If you did this, you'll want to uninstall Subversion first.

Once you've downloaded the zip, extract the contents.

Installing the binaries

The README included in the zip basically covers what you need to do.

Determine where you want to install Subversion. I decided to keep it in the Program Files directory, so I created a new Subversion folder at C:\Program Files\Subversion.

Next, move the four directories and file, from the zip, to this directory.

Now go to Start and right click on Computer, selecting Properties. Go to the Advanced tab and press the Environment Variables... button. At the end of the Path system variable, add the location of the Subversion bin directory. For example, C:\Program Files\Subversion\bin . Press OK all the way out.

You should be able to open a command line and type svnadmin -? and get a meaningful bunch of commands.

In a new instance of Windows Explorer, navigate to the modules directory in the Apache install directory. For example, c:\Program Files\Apache Software Foundation\Apache2.2\modules.

Copy mod_authz_svn.so and mod_dav_svn.so from your Subversion install's bin directory into the Apache modules directory.

Still in the Subversion bin directory, copy the intl3_svn.dll and libsvn_fs-1.dll files into the Apache bin directory.

If you want to use Berkeley DB, grab the libdb44.dll (or libdb*.dll) instead of the latter.

Next open the httpd.conf file (we covered how to do this before) and uncomment the following two lines (remove the #):

#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so

Now add these two after the existing LoadModule lines (you may want to add a comment noting why you've added these):

LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule dav_svn_module modules/mod_dav_svn.so

Now go to the bottom of the httpd.conf file and add the following information:

<Location /svn/repos>
     DAV svn
     SVNListParentPath on
     SVNParentPath Drive:\path\to\repos
</Location> 

For example:

<Location /svn/repos>
     DAV svn
     SVNListParentPath on
     SVNParentPath B:\repos
</Location>

Restart Apache via the Apache Service Monitor.

If you get any errors, check your error logs (logs directory in the Apache install directory).

Windows event logs (Administrative Tools > Event Viewer or eventvwr from the command line) may also have relevant error information.

Once Apache starts, browse to http://localhost:8080/svn/repos/ (assuming you used that port and directory), and you should see a listing of your repositories.

You can now browse the current versions of the files under Subversion.

TortoiseSVN

While you're at it, you may want to install or update TortoiseSVN.

I already covered how to install Subversion on Vista, and the steps still apply.

Upgrading existing repositories

If you've already installed Subversion, and have been working with it, you may need to upgrade your existing repositories.

You can do this via the command line by running svnadmin upgrade \path\to\repository , however, you should ensure that you have a backup before you do this. Also, you'll be unable to use tools that cannot access the 1.5 repos.