tags:

views:

1222

answers:

12

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.

+1  A: 

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.

BigMadKev
dead link, please update
AlexanderN
+15  A: 

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.

John Sheehan
TortoiseSVN as the client works a treat too.
devstuff
+1  A: 

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

Mark Biek
A: 

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.

brendan
+3  A: 

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?

Portman
Your analysis is flawed because you are not comparing apples to apples. You may want to read http://svnbook.red-bean.com/en/1.5/svn.serverconfig.choosing.htmlYou should be comparing Apache HTTPd + mod_svn to VisualSVN for the same features.
Scott Markwell
Uh... isn't that what I said? "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."
Portman
I'm sure there's a difference, but did you reboot the box between tests? Otherwise the file caching done by the OS will affect the timing of the 2nd run.
devstuff
The fact that subversion is much slower over http:// than svn:// is a known issue. Last I read it was planned to fix it in subversion 1.7: http://blog.red-bean.com/sussman/?p=139
Wim Coenen
Part of the reason that http:// is slower than svn:// is that HTTP is stateless, so there is more overhead. The SVN protocol is stateful. This has been discussed on the SVN mailing lists multiple times.
msemack
A: 

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).

mmattax
A: 

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.

DevelopingChris
A: 

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.

John Meagher
TortoiseSVN adds SVN into XP Windows Explorer. Vista's Explorer does not allow that sort of customization, which is one of my really big gripes about Vista.
David Thornley
@David: TortoiseSVN has been working on my Vista boxes for the past 2 years without any hassles.
devstuff
A: 

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

Jeremy
A: 

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

Espo
+1  A: 

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.
Ant
A: 

VisaulSVN Server + Trac + TortoiseSVN + Ankhsvn.

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

Ben Collins