Subversion is case-sensitive
December 5, 2006
Windows isn’t case-sensitive when it comes to filenames. The Subversion Repository, however, is. If you add a file called “FILE.cs” and then replace it with a later copy, but called “File.cs”, you’ll get two files in the Repository. However, if you try and do an SVN Update on a different machine you’ll get an error.
The solution is to go into the Repository Browser, delete both FILE.cs and File.cs, and then re-add your updated file.
The solution my coworkers favor is to IM me and ask me to resolve it, as I work on Linux and it is case-sensitive. When I’m not around, I suspect they ask one of the guys on OS X. As this only happens once every few months and takes less than a minute to resolve, this works great.
I’ve noticed it only happens when two people think they’re the one to create a file and they pick the same case. It might be nice if svn threw a conflict case-insensitively, though it wouldn’t be very unixy.
I think I read somewhere that the case-sensitivity is a config setting on the server. Although I may be wrong.
Funny, I just realized this yesteday, and then found your site today.
This is not just true on the server. Once in a while some of the files on my client machine were losing their svn icons (and context menus), as if they were unversioned. So I finally tried renaming the file to its original case and the icon came back (I’m using xp). Now I just have to find out what was renaming them in the first place…