My friend Dan Vega has become a blogging machine lately, and he keeps telling me that I need to blog some of the many pearls of wisdom I've collected. This one's bit me now twice, so it's time to blog it.

I have been doing a lot of work in recent months with Subversion, setting up two Subversion servers in different environments, both on Windows.

I ran into several issues setting up one of those servers. There is a TON of content I have on that - I could probably teach a course of setting up Subversion on a Windows server at this point... but I do suck at blogging, specifically finishing a blog post before it goes stale... so I'll keep my posts short and let out what I've learned as I have time (not often, including now!).

With that, here is my first Subversion blog post of what I think will be many to come... Even though you might set up Subversion on a Windows server, beware of case sensitivity. Yes, that's right... it's case sensitive.

In one of the installations I've recently completed, we're using the SVN server as a service rather than Apache. Why is the subject of a future blog entry, so let's keep that out of it for this one.

When you point to a repo that uses the SVN server and you have commit rights on the repository, make sure you use the correct URL and that includes case.

In other words, if your repository is called ProjectX, and you point to:

svn://www.yourrepo.com/projectX

You will have no trouble grabbing updates to your working copy, but when you commit, it will fail, and you'll get a notification like so:

8/23/2009 - 12:21:04 AM
Command              : Commit
Error                : Commit failed (details follow):
Error                : Authorization failed
Finished!            : 
1 kBytes transferred in 0 minute(s) and 13 second(s)

The correct URL would be:

svn://www.yourrepo.com/ProjectX

To change the URL, you have to relocate the working copy to the correct URL. Your Subversion client will object, warning that you may corrupt your working copy. Ignore the warnings, and proceed. Once you have relocated the working copy, you should have no trouble performing a commit to the Subversion repository.

A colleague of mine had this occur about a month and a half ago, just after that Subversion server was set up. Tonight... I had the same issue, though it took me a while to realize what I had my colleague change the first time. It was my first commit to this repository in some time, so I hadn't noticed my error until now.

If you are using Apache, you won't be able to update or commit, so it becomes pretty obvious when you first try to set up your working copy that you entered the wrong URL. The SVN server is a little more subtle, and it won't become obvious until you try to commit.

As they say, fool me once, shame on you... but I was fooled twice, and I should have remembered this one a lot sooner than I did tonight! :-) I hope this helps someone out there.