I just worked on a software project where subversion is used as version control system. MacOS X has the subversion client (although an slightly old version) already build in. I got some fancy GUI tools as subversion frontend like Versions, Cornerstone or SmartSVN.

In this projekt I have to work on the code on different machines with different operating systems. Some of the machines are Windows, I usually work on a mac and sometime on an Ubuntu Linux machine. This is where the trouble begins.

I always think of MacOS X as BSD like Unix system with a charming graphical front end. But this doesn’t hold true for some very basic facts I’m used to on Unix/Linux systems. Especially the per default case insensitive HFS+ filesystem on my Mac almost drove me nuts these days.

I added some files to the said project when working on my Linux machine. I got these from a developer working on a windows machine as ZIP file, unpacked them and commited them to the subversion repository.

Back on the Mac and Windows systems I wasn’t able to check out the new revision of the project. This is because the one developer used capital letter filenames of some already there files. No problem on windows as cases doesn’t matter. But the linux system recognized these files as new and added them as additional files to the repository.

If I try to check out or update on a case insensetive system then of course I got errors from the subversion as it tries to check out two files with the same name but different meta data.

So be warned when working in heterogenous environments. A Mac with default filesystem settings is not case sensitiv which might be unusual if you come from the Unix/Linux world.

I once tried the case sensitive HFS+ filesystem under Tiger (MacOS X 10.4) but remember vague that there where some problems. Maybe I check that out again on Leopard.

Informations

2 responses to “The beast inside the beauty”

In general you still can expect problems with case-sensitive FS in OS X but it heavily depends on what kind of application you have to use. IIRC Adobe CS is a great example which still fails in such a case – but as programmer this app shouldnt be needed for you =)