Geeks With Blogs

live stats

Domain Name Free Service
Get a free domain name like with the following features included: free URL redirection with cloaking, path forwarding, all meta-tags supported, kill-frame feature, NO forced ADS at all, and more.


All content © Manish Agrawal
The content on this site represents my own personal opinions and thoughts at the time of posting, and does not reflect those of my employer's in any way.
Disclaimer:- All postings in this blog is provided "AS IS" with no warranties, and confers no rights.
Manish Agrawal My Experiments with Technology..
  1. Download the binaries

For Server machine:

Go to the Apache download page and download the version (apache_2.0.54-win32-x86-no_ssl.msi) of Apache web server. I tried downloading some latest versions also but faced few issues in installation, so I continued with version 2.0.54.

Go to the Svn1ClickSetup download page and download the latest version. As of the writing of this article it is 1.3.2.

For Client machine/s:

It will be sufficient to just install Tortoise SVN Client, it can be downloaded from TortoiseSVN Page. As of the writing of this article latest version was 1.3.4

  1. Set up Subversion on Server

Run the Svn1ClickSetup executable (Svn1ClickSetup-1.3.2.exe) downloaded in the previous step. All the installation locations mentioned in this article are assumed to be default locations.

Note: Svn1ClickSetup installs a Subversion service, if you don’t want to be running this service, open a command prompt, and run the following command:

svnservice -remove

  1. Set up TortoiseSVN on Client

Run the TortoiseSVN Setup executable (TortoiseSVN- downloaded in the previous step.

Note: If you are working on VS.Net with Web Projects, it is recommended to select ASP.Net Hack on the Custom Setup step of the installation wizard. Although I have not explored consequences of not selecting it but it is hardly of any harm, as it not even takes 1 kb of your hard disk space.

  1. Install Apache

Run the Apache installer (apache_2.0.54-win32-x86-no_ssl.msi) that you downloaded. It is pretty simple to install.

Once the installation finishes, launch a web browser, and browse to http://localhost. If you see a test page from Apache, the server is installed correctly.

Note: If port 80 is already occupied, you will have to stop the Webserver on which it is running or you will have to stop that WebSite. As Apache installation wizard gives not enough options of setting port while installation.

Later you can change the default port (which I recommend) in the httpd.conf file located in C:\Program Files\Apache Group\Apache2\conf  folder.

You will have to make changes at two places, firstly search for word Listen and replace 80 with your desired port number for example 8181

Listen 8181

Secondly search for ServerName and replace :80 with your desired port number.


You will have to restart Apache and now you can launch a web browser, and browse to http://localhost:8181/

Note: Now don’t forget to restart the Webserver or WebSite, which you mayhave stopped.

  1. Set Up HTTP Access

The first thing we need to do is make sure that Apache loads the WebDav modules. The Apache config file (httpd.conf) is located in the C:\Program Files\Apache Group\Apache2\ conf directory. Launch a text editor, and open the Apache config file. You will want to keep this file open for the rest of the installation.

Copy the Subversion HTTP modules:

Program Files\Subversion\bin\

Program Files\Subversion\bin\

into the Apache modules directory (Program Files\Apache Group\Apache2\Modules).

In the config file, look for a section of lines that all start with LoadModule. At the end of that section, add the following lines:

LoadModule dav_module modules/

LoadModule dav_svn_module modules/

LoadModule authz_svn_module modules/

At this point, restart the Apache2 service (Control Panel > Administrative Tools > Services). You will probably want to keep the Services window open (we will be restarting Apache several more times). If it restarts with no errors, Apache is now loading the SVN module.

Back in the Apache config file, add the following to the end of the file:

  DAV svn
  SVNPath "C:\svnrepos"

Restart Apache2 again. You can now access your repository via HTTP.

  1. Configuring Authentication

?ote: There are several different ways to configure authorization for Subversion, but in this article only basic authorization is mentioned. Basic authorization sends the passwords in near plain-text, so if you are concerned with password snooping, you will have to use a different authorization scheme.

Now, we can browse our repository via HTTP. Not only that, but we can also check-out, modify, and commit changes. However, none of these operations require any type of authorization. Not exactly what we want, especially if we are going to have multiple users.

To enable authorization, we need to tell Apache who the authorized users are. To do this, we give Apache a file with a list of the authorized users and their passwords. Apache makes this job easy by providing a utility to mange the user file, htpasswd.

Let’s go ahead and create our user file with the users Tom and Jerry. We are going to put our file in the Apache conf directory, so open a command prompt to that directory (C:\Program Files\Apache Group\Apache2\conf). Type the following command, and then enter a password for Tom.  

C:\Program Files\Apache Group\Apache2\bin\htpasswd -cm svn-auth-file Tom

Now type the following command to add Jerry to the file.  

C:\Program Files\Apache Group\Apache2\bin\htpasswd -m svn-auth-file Jerry

Note: There is difference between these two commands. The first command passes in the -c command, which tells htpasswd to create the file. The second time, the file already exists, so just   -m command is enough. The second command can be used to add additional users to the file. In the svn-auth-file entries for both Tom and Jerry can be seen.

Now that authorization file is created, some Apache configuration is also required. Go back to the Location tag that we added to the Apache config file. And add some more lines to it so that it looks like this

  DAV svn
  SVNPath "C:\svnrepos"
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile "C:\Program Files\Apache Group\Apache2\conf\svn-auth-file"
  Require valid-user
After restarting Apache2 once again, browse to your repository again. This time, you will be prompted for a user name and password. Cool, we have authorization working. However, if you don’t want to be prompted for a user name unless modifying the repository, you are not quite finished yet.

Thankfully, only requiring authorization for modifications is really easy. All you have to do is add a couple more lines to the location tag so that it looks like this

  DAV svn
  SVNPath "C:\svnrepos"
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile "C:\Program Files\Apache Group\Apache2\conf\svn-auth-file"
    Require valid-user

One last restart of Apache2 and you now have the Subversion HTTP module installed, configured, and ready to control our revisions.



I have modified Brian Kohr’s article as I felt it was missing few things. I hope it will be of help and will be taken in the right spirit.

Posted on Wednesday, June 14, 2006 9:22 PM Build / Release , Technology Articles | Back to top

Comments on this post: How To: Install the Subversion SVN (HTTP Module/Server/Client) on Windows

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Manish Agrawal | Powered by: