I was recently asked to look into setting up a Subversion server for a client with little to no prior experience with software version control. They had a team of 8 developers mainly working on Visual Basic scripts and the odd Visual Studio project. Being a primarily Windows-based environment I went looking for a packaged solution before setting out piecing individual components together Unix-style. I was happy to find what looked like a nice solution in VisualSVN. In essence, this is just shrink-wrapped Apache and SVN servers along with a nice, simple management console. Using this would ensure that the client would be in position to manage upgrades to the system easily long after I was gone. Whilst VisualSVN covers all the basics I also wanted to give them something pretty to look at. This would come in the form of WebSVN which would require me to install PHP. To make working with these new tools as comfortable and seamless as possible, I also wanted to integrate Windows authentication against their existing Active Directory.
I’ve recorded the steps to achieve the above below:
1. Install VisualSVN
The current version at the time of writing was 2.5.6 so that’s what I used (http://www.visualsvn.com/server/download/). This comes with Apache 2.2 and Subversion 1.7.6. This was installed in the default location under C:\Program Files. VisualSVN uses FSFS as its repository storage mechanism. I left the root directory for repositories configured at the default value of C:\Repositories.
Once installed – if not already running – open up the VisualSVN management console and start VisualSVN. Create a test repository and point your browser to http://localhost/svn/ (or https://localhost/svn/ if you’re using HTTPS).
2. Install PHP
The current version at the time of writing was 5.4.7 so that’s what I used (http://windows.php.net/download/#php-5.4). The thread-safe version of the binaries was used. I extracted the downloaded Zip-archive to the C:\ drive and extracted its contents into C:\PHP. The php.ini was left as is.
3. Install WebSVN
The Apache server root is located at C:\Program Files\VisualSVN Server\htdocs. This is where I created a ‘websvn’ subdirectory and extracted the contents of the WebSVN Zip-archive. Version 2.3.3 was current at the time of writing.
4. Install helper tools to enhance WebSVN
Install diffutils, enscript and sed from Gnu32 to make WebSVN more useful. Make sure you update the config.php file accordingly.
5. Add fancy logging
1. Create a directory named “log” under \htdocs in the VirtualSVN program directory
2. Copy the entire \log structure to this directory
3. Ensure the server has write access to the directory
4. – Optional – Copy rotatelogs.exe from the \Utils directory to the \bin directory under the VirtualSVN program directory