.scm subdirs

I just stumbled upon an interesting Subversion bug.

Issue 707 on the bug tracker of Subversion is now several years old. It seems to be related to one of my personal pet peeves with Subversion: the use of `.svn’ subdirectories everywhere.

When using CVS, the `CVS’ subdirectories which clutter a working area are merely annoying. When using Subversion, the `.svn’ subdirectories are, in my opinion, a bit over the edge of `annoying’. They are almost ‘silly’.

I’ve always been annoyed by having to `fgrep -v CVS’ to iterate through all the files in a CVS workspace. Precisely the same level of annoyance kicked in when I started having to `fgrep -v .svn’. In fact, this annoyance and the lingering memories of it, are one of the reasons why I originally liked Perforce, Git and Mercurial. There are no `.p4′, `.git’ or `.hg’ subdirectories in every single directory of a workspace in those SCM systems.

It is quite intriguing that a misfeature of SCM systems that feels `pretty unhackish’, turns out to be a source of difficult to solve bugs too. I guess this is just another way of saying that after years of working with SCM software, one develops a certain `hacker instinct’ that values simplicity over gratuitous exceptions. This instinct kicks in every time one of these exceptions is noticed (like `CVS’ and `.svn’ filesystem clutter).

I hope that, eventually, simplicity will somehow win, and we will stop having to deal with either the filesystem noise of all the `CVS’ and `.svn’ subdirectories, or the bugs which result from the mere presence of this noise.