Here are the steps I took documented one by one in my journey in establishing a new SVN server and hooking it to HTTP access, using the latest and greatest version of Subversion and Apache.

 

Step 1: Download the latest windows install binary from tigris.org located here: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=0. The version we’ll be working with is svn-1.4.3-setup.exe

Step 2: Download the Apache 2.2.x patches to Subversion 1.4.3 here: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91. The version we’ll be working with is svn-win32-1.4.3.zip

Step 3: Download the latest version of Apache here: http://httpd.apache.org/download.cgi. The version we’ll be working with is apache_2.2.4-win32-x86-no_ssl.msi

Step 4: Download the latest version of TortoiseSVN here: http://tortoisesvn.net/downloads. The version we’ll be working with is TortoiseSVN-1.4.4.9706-win32-svn-1.4.3.msi

Step 5: Install SVN by double clicking on the EXE downloaded in step 1

Step 6: Unzip the svn-win32-1.4.3.zip folder to where you downloaded it.

Step 7: Copy the contents of the freshly unzipped svn-win32-1.4.3 folder into the location where you installed Subversion in Step 5

Step 8: Install Apache 2.2.4 by double clicking on the .msi file download in step 3.

Step 9: Copy the mod_authz_svn.so and mod_dav_svn.so files located in your <subversion install>\bin folder to <apache install>\modules folder

Step 10: Modify the file <apache install>\conf\httpd.conf file and insert the following LoadModule statements:

LoadModule authz_svn_module modules/mod_authz_svn.so

LoadModule dav_svn_module modules/mod_dav_svn.so

Uncomment the following line:

LoadModule dav_module modules/mod_dav.so

Step 11: Stop and Restart Apache to verify that the changes you made to the .conf file so far are good…

Step 12: install Tortoise SVN by double clicking on the .msi file you downloaded in step 4 (when asked to reboot, it’s safe to say “no” to this)

Step 13: Create a folder for the repository to live (I created mine as F:\SVNRepository\project1 and F:\SVNRepository\project2)

Step 14: Right click on the folder you created in Step 13, Select Tortoise SVN -> Create Repository Here. When prompted for the type of repository, select Native filesystem (FSFS)

Step 15: Create a folder for the repository configuration files (I created mine as F:\SVNRepository_Config)

Step 16: Go back and modify the httpd.conf file, at the very end add the line:

Include <respository config folder>/subversion.conf (On my system, that’s
“Include F:/SVNRepository_Config/subversion.conf”

And save the httpd.conf file

Step 17: Create users for the repository:

a. Open a command window and navigate to <Apache install>\bin

b. Execute the command htpasswd to create the user in the password file in the folder you created in step 15: eg. htpassword –cm F:\SVNRepository_config\svn-auth-file jason

Step 18: Create an access control (svn-acl) list for your projects in the folder you created in Step 15

#
# specify groups here
#
[groups]
team1 = ross, rachel
#
# team1 group has a read/write access to project1 repository
# all subdirectories
# all others have read access only
#
[project1:/]
@team1 = rw
* = r
#
# project2 repository, only harry and sally have read-write access to project2
#
[project2:/]
harry = rw
sally = rw
* = r

#
# ross is helping with the time zone part of the project2
#
[project2:/timezone]
harry = rw
sally = rw
ross = rw
* = r
Step 19: Create Subversion.conf. This is what maps your web url to a specific SVN Repository

<Location /svn/project1>
DAV svn
SVNPath F:/SVNRepository/project1
AuthType Basic
AuthName "Subversion ICAN repository"
AuthUserFile F:/SVNRepository_Config/svn-auth-file
Require valid-user
AuthzSVNAccessFile F:/SVNRepository_Config/svn-acl
</Location>

<Location /svn/project2>
DAV svn
SVNPath F:/SVNRepository/project2
AuthType Basic
AuthName "Subversion ICAN2 repository"
AuthUserFile F:/SVNRepository_Config/svn-auth-file
Require valid-user
AuthzSVNAccessFile F:/SVNRepository_Config/svn-acl
</Location>

Step 20: Restart Apache for the last time…

Step 21: At this point, you should be able to open up your favorite web browser and navigate to http://www.yoursite.com/svn/project1 and http://www.yoursite.com/svn/project2 and browse the repository trunks.

 

Portions of this step by step guide (such as the SVN access control list and subversion.conf files were blatantly taken from http://svn.spears.at/ (Thanks guys for really pointing me in the right direction with that!))