Working with version control systems can be a pain in the butt. I notice that most frequently when I do a find in an SVN directory and find all the administrative files that go with it. It’s factors more files in there than in the actual directory.

At the same time, there are times when you would want every access to a file recorded, so as to be able to undo things. Restore the status as of last Monday, or see the difference in that file that just got changed a minute ago.

Versioned file systems have been around for a long while. On Linux, apparently, the default is copyfs – which also apparently hasn’t seen much of an update in a long while. 

Here I used a different approach than that used by most. Instead of creating a file system that does its own versioning, I used an existing versioning tool, subversion, and made its use transparent. The advantage is that this file system doesn’t require you to learn a new tool, if you know subversion; if you don’t know or care about versioning, you don’t have to worry, either: this file system will be perfectly transparent to you.