Old:Installing SVN

Revision as of 17:16, 15 May 2008 by 219.95.0.106 (talk) (Numbered lists will be messed up if list item is longer than a paragraph)

This guide will show you how to install a Subversion (SVN) server with Uniform Server. This guide assumes that you have a clean installation of Uniform Server running currently and do not have another version of Apache installed on your PC.

Installing SVN

  1. Download the latest Win32 SVN binaries from here. This guide uses the .exe Installer provided there.
  2. After installing / unpacking it, copy the contents of its httpd folder (usually C:\Program Files\Subversion\httpd) into Apache's module directory (Uniform Server's default is W:\usr\local\Apache2\modules)
  3. Copy libdb42.dll from the bin folder into the same module directory.

Apache Module Configuration

  1. Edit Apache's configuration files (W:\usr\local\Apache2\conf\httpd.conf) and uncomment (remove the # from) this line if it is commented:
    LoadModule dav_module modules/mod_dav.so
  2. Next find:
    LoadModule dav_fs_module modules/mod_dav_fs.so
    and add this below it:
    LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

Configuring SVN

  1. Create an empty folder (I used W:\svn), which will used as repository root.
  2. Create another empty folder (for example W:\svn\test) in your repository root.
  3. Open the Command Prompt (or MS-DOS Prompt in Win 9x), cd into your repository root. Execute:
    svnadmin create --fs-type bdb test
    or
    svnadmin create --fs-type fsfs test
    Note: test is the folder you created (under your repository root) earlier in Step #2; for more info on which fs-type to choose, read Chapter 5, Repository Data-Stores in the SVN book for more information

Integrating Apache + SVN

First, you should add this anywhere in your configuration file (preferably between "<IfModule mod_dav.c>" and "</IfModule>"):

<Location /svn>
    Dav svn
    SVNParentPath /svn
    AuthType Basic
    AuthName "Subversion Repositories"
    AuthUserFile /htpasswd/svn/.htpasswd
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
    </LimitExcept>
</Location>

Note #1: If you do not want your repository to have read access for everyone (even those who do not have the password) remove the <LimitExcept>

Note #2: /svn is the path to your repository root, if you used any drive other than what Apache is on (Uniform Server default = W:\) for your repository root, you'll have to put the drive letter in front of the / (for example, C:\SVN becomes C:/SVN)

Next, create the .htpasswd file which will store the username & password needed to modify your repositories. Open the Command Prompt again, cd into Apache's bin directory (W:\usr\local\Apache2\bin). Execute:

htpasswd -c .htpasswd <username>

To add more usernames & passwords, execute:

htpasswd .htpasswd <username>

Note: Replace <username> with the username of your choice.

For more advanced configurations (not needed by many) view Setting Up an SVN Server.

Last Steps

  1. If you are using version 3.3, please skip to step 4.
  2. Create a "htpasswd" directory in the W:/ drive if you are using version 3.2 or less.
  3. Create a "svn" directory under the "htpasswd" directory.
  4. Copy the .htpasswd file into the "svn" directory.
  5. Now, the time you've all been for. Restart Uniform Server.
  6. Point your browser to http://localhost/svn/test (where test is the name of the repository you created earlier)

Shortcuts

  1. If you do not understand how to make the .htpasswd file, you can just make the file and edit it with the contents "username:password" in the file.

External Links