For the last year or so, I've been forced to use ClearCase as my source control system at my current client.  Yes, ClearCase.  No, I didn't accidentally update a blog post from 10 years ago and have it show up as new.  If you're not familiar, this is ClearCase:

At least, that's what it looks like when you try to do something like check in a file with a long path.  Errors?  Exception handling?  Hello?  Do or do not, there is no try... there sure as hell isn't a catch.  Now, I've run into long path issues in .Net projects before, especially SharePoint projects.  The namespaces add up, and before you know it, Visual Studio is telling you that you'd best name your new file x.cs if you want to use it.

Not ClearCase.  No, it will crash, and when you restart, everything seems peachy -- even if the server has given up the ghost on your files. The recent problem for me, apparently, is that my team's project file paths had gotten a wee bit long, though ClearCase never felt the need to tell anyone.  Worse than that, there's no way to know if your file's path is too long before you check in unless you get your server team to tell you that ClearCase is storing files in E:optrationalclearcasevarccwebusername.domain and even if you have the files stored locally in C:Prj, the full server path is counted against your project files' path.  So, 40 characters + the length of the longest developer username is lost for me.  Well, 216 characters should be enough for anyone.

We find this out now, months into the project, after a full day of nobody being able to check files in, and worse, nobody being able to refresh their views to get the major refactoring changes that were put in.  Of course.

I could go on and on about this crap platform... about how step 1 of integrating the ClearCase plugin into Visual Studio 2008 and 2010 is to install Visual Studio 2005... how there is no concept of a changeset - that a checkin/checkout of a file is atomic on the file level, that if you want to check out a bunch of files in your project to make some wide-ranging refactor, that you better be aware that nothing ClearCase does is recursive, and you need to select every single file individually that you want to work with, even as a group, and even then sit through clicking "Apply" on the checkout dialog and waiting a few seconds for the actual checkout to happen for every... single... file.

It's one thing to have to wait 20 minutes for a checkout.  Its another that you have to sit there hitting Alt-A every 8 seconds for the duration as each file has it's own checkout process.  When you're doing it at 10pm on a Sunday night, it's enough to make you quit software development altogether and take up knitting.