Question

I'm curious to hear the experiences of those who are currently running their SVN server on Windows.

Jeff Atwood has a post on how to setup SVN as a Windows service. It's a great first step, but it doesn't touch on other topics, such as:

  • What to use for a web-based repository browser? WebSVN can work on Windows, but it ain't pretty.
  • How to manage the passwd file?
  • Is it possible to integrate with Active Directory without running Apache?
  • Strategies for backing up the repository.
  • Useful global ignore patterns for Visual Studio development (suggestions here, here, and here for example).

Our company switched from SourceGear Vault to Subversion about one month ago. We've got the basics down pat, but would love to discover people's tips and tricks for running SVN in a MSFT world.

Was it helpful?

Solution

Use VisualSVN Server. It integrates with Windows authentication and it handles all the apache setup. It's as painless as SVN can be on Windows.

OTHER TIPS

VisualSVN is the way to go. The built-in Active Directory support is very easy to use.

I have found that VisualSVN is about 50% slower than running SVN as a native service. I always assumed

that was because of accessing via http:// with Apache, which seems like it would have to be slower

than accessing via svn://, which is native TCP/IP.

The Experiment

In the last 30 minutes, here's what I did:

  • Installed VisualSVN on port 8080, side-by-side with my existing SVN install
  • Imported three existing repos into VisualSVN
  • Kicked everyone else off the server
  • Did side-by-side comparisons of a full svn checkout

Results

Repo 1: 652 files, 273 directories, 60.1MB
  23 seconds for VisualSVN over http:// 
  16 seconds for SVN over svn://

Repo 2: 4623 files, 964 directories, 127.9MB
  2 minutes, 18 seconds for VisualSVN over http://
  1 minute, 30 seconds for SVN over svn://

This is on identical hardware, with the exact same repository. I like how easy VisualSVN is, but AD integration and GUI aren't worth a 50% performance hit.

Anyone else seen this difference? Am I doing something wrong just following along with the default installation options?

I have a fairly indepth tutorials on my blog http://tv.inner-rhythm.co.uk/ on how to set SVN up with Apache and Trac which we use at my company which works for us.

I use a combo of VisualSVN and Tortoise. It doesn't integrate well with visual studio but you can use other plugins/apps for that.

Trac is certainly the best web based project management software I use, it integrates with subversion so you can see timelines of commits and diffs of each versions, it allows tickets and bug reports, and has a built in wiki.

http://trac.edgewall.org/wiki/TracOnWindows

A little knowledge of python and it is easy to get up and running (if your on windows though, use the tracd server: http://trac.edgewall.org/wiki/TracStandalone (this link will show you how to install it as a windows service).

I recommend TortoiseSVN. It adds SVN capabilities into Windows Explorer. In addition TortoiseSVN check to see if the IDE you are using has support for SVN.

Rich Strahl just posted a blog entry on Running VisualSVN Server for Subversion Source Control. Worth a read:

http://west-wind.com/weblog/posts/480534.aspx

For backing up, I wrote a combination of a batch file and a VBScript that runs once a week as a scheduled task. It:

  • Scans through a particular folder on the file system recursively looking for SVN repositories (we have a multitude of small repositories, as we found that one uber-repository quickly became difficult to maintain and intolerably slow when used with TortoiseSVN);
  • Uses svnadmin hotcopy on each repository found to create a backup;
  • 7zips all of the backups into a single archive;
  • Mounts a share on a SAN and copies the archive over;
  • Deletes all of the temp files;
  • Emails a "success" notification.

VisualSVN Server + Trac + TortoiseSVN + Ankhsvn.

Done. Smooth as silk. What Visual SourceSafe should have been.

I think you are seeing the difference betweeen the svn protocol and hosting the svn protocol on another.
Similar performance decreases when using svn+ssh compared to svn.

The ease of setup, has made it a no brainer for my team, we just threw it on a vm and ran.

Running SVN under apache really isn't that hard. And you can use mod_auth_sspi to integrate with active directory.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top