This post originated from an RSS feed registered with Java Buzz
by Mike Shoemaker.
Original Post: CVS obfuscation
Feed Title: Unruly Rambling (java category)
Feed URL: http://www.shoesobjects.com/blog/feed.xml?flavor=rss20&category=java
Feed Description: My thoughts on software, technology, and life in general
A couple days back, I had a really weird thing happen while updating the source code of a project while using IDEA 5(Windows XP). When I would issue the cvs "check directory status" command, it would tell me that the class in a particular package had been removed. After seeing this and knowing that I didn't remove that class, I issued the command again. Now I see that the update put the files back in my workspace like they were new. This went on for a couple hours, acting flakey from time to time. By the end of the day I recreated my workspace and checked everything out from scratch again but the same problem continued to happen. I assumed it was my workspace because our automated build process never had a hiccup. Eventually I went to the cvs repository(Linux) directly to poke around. Low and behold, I saw 2 directories, one using camel case and one using an all lower case naming convention. After looking even further, I noticed that one of the directories was empty but had an Attic directory. The other directory had the mysterious files. Upon inspecting the Attic directory, I saw that files by the same name had been removed from the repository.
In other words, the directory structure looked like this
com/acme/mypackage/Attic/WeirdFile.java,v
com/acme/myPackage/WeirdFile.java,v
My guess is that this weird behavior was happening because I was working on windows where nothing is case sensitive and it couldn't differentiate between these two directories. Bottom line, if you must develop software on inferior operating systems pay attention. Refactoring could cause you to be in this very situation scratching your head.