See the comment dead links below for up to date information on how to do this.
Step by step instructions on installing Apache and Subversion on Windows and creating and securing a repository.This is very easy as there is a Subversion Windows installer here.
This will be an Apache based Subversion server.
Download and install Apache 2.0.x (where 'x' is 52 or above) from here and the latest version of Subversion from here. If you are using Windows/XP Service Pack 2 you will have to permit the firewall to allow traffic to Apache on port 80.
These instructions assume that Apache is installed in C:\Program Files\Apache Group\Apache2 and Subversion is installed in C:\Program Files\Subversion. Version 2.0.50 of Apache and 1.0.5 of Subversion were used when writing these instructions.
Provided Apache was installed first the Subversion installer will put all the module files and dll's which are required into the Apache modules and bin directory. The 1.1.1 installer fails to configure Apache correctly (intl.dll is missing) and the httpd service is uninstalled. To recover this open a command prompt, go to your Apache installation directory (C:\Program Files\Apache Group\Apache2\bin) and type Apache -k install. Also copy C:\Program Files\Subversion\bin\intl.dll to C:\Program Files\Apache Group\Apache2\modules. You should then be able to start the Apache service using the Apache Service Monitor which is installed in the task bar.
Let's say you want your repository to be in c:\svn\repos, type in these commands in a command prompt:
> mkdir c:\svn > svnadmin create c:\svn\repos
Edit the Apache configuration file, follow the Windows menus:
Start/All Programs /Apache HTTP Server 2.0.50 /Configure Apache Server /Edit the Apache httpd.conf Configuration File
In the modules section of the file uncomment:
LoadModule dav_fs_module modules/mod_dav_fs.so
The subversion modules will have been added by the installer.
Then at the bottom of the file add:
<Location /svn/repos> DAV svn SVNPath c:\svn\repos </Location>
Now restart Apache by double clicking the Apache Service Monitor icon in the taskbar and click the Restart button. If Apache isn't currently running use the Start button instead.
The Subversion server should be running. Point your browser at http://your.server.name/svn/repos and you should see something like this:
Revision 0: /
Powered by Subversion version 1.0.5 (r9954).
That's it, you now have a fully functional Subversion server.
You have a working server but with no user authentication so anyone can use it. This has the knock on effect that the server doesn't know who is making commits and so cannot set the svn:author property on that revision.
Subversion supports http basic authentication. To use this you need to add the following to the Apache Location directive and restart Apache:
AuthType Basic AuthName "Subversion Repository" AuthUserFile c:\passwd\passwords Require valid-user
Then you must create the passwords file:
> mkdir c:\passwd > "c:\Program Files\Apache Group\Apache2\bin\htpasswd.exe" -c c:\passwd\passwords username Automatically using MD5 format. New password: ******* Re-type new password: ******* Adding password for user username
You don't have to put the password file at this location, change the paths if you would prefer to store it somewhere else. The -c flag creates a new file, to add more users leave out the -c.
Now if you visit the URL http://your.server.name/svn/repos you should be prompted for your user name and password.
See hints here.
For more detailed information on configuring Apache and access permissions see
Chapter 6 of the subversion book.
You can find a non-Apache based setup guide at http://excastle.com/blog/archive/2005/05/31/1048.aspx?Pending=true