Why you SHOULD use a case sensitive file system on your Mac

There is a lot of noise on the Internet saying case sensitive file systems on the Mac are bad. I guess if you are running Adobe apps, you can listen to that, since they are apparently developed sloppily and depend on a lack of case sensitivity. Any real developer, however, will find that the lack of case sensitivity causes problems. Here are two I recently ran into that ended up wasting a LOT of time debugging:

  • In Tapestry 5, a lot of effort has been made to make things not case sensitive. Developing a t5 app on my Mac, I had that in my head, and created some page templates using all lower case, and their Java classes in typical upper camel case. I ran the app and tested it out until I was satisfied it was working. I deployed it to the Unix dev server and it mysteriously stopped working. It turns out, it searches for page templates based on the case sensitive class name. So my Index class was looking for the file Index.tml. I had index.tml. On the Mac, the OS returns index.tml when you look for Index.tml. Worst of all, I had to use a Unix machine to rename the files in the SVN repository because the Mac refused to acknowledge any change.
  • Working on another project, I had a directory structure that had a directory in all caps. I needed to change it to lower case. Once that was done, I tried to commit the changes to SVN. I got this:

    svn: Commit failed (details follow):
    svn: Server sent unexpected return value (405 Method Not Allowed) in response to MKCOL request for ‘/svn/!svn/wrk/626a333b-f635-42b4-896e-5df2dd0475c2/ecampus/src/com’

    Not cool.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s